在操作栏上按“向上导航按钮”并返回到父活动时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在操作栏上按“向上导航按钮”并返回到父活动时出错相关的知识,希望对你有一定的参考价值。
我对android世界比较陌生。我有一个活动(PartyActivity)显示有关聚会的一些信息。按下“编辑”按钮,它启动一个新活动(EditPartyActivity),允许用户编辑聚会信息。 EditPartyActivity在其操作栏上有一个向上导航按钮,允许用户返回PartyActivity,这是我的问题。当我回到PartyActivity时,它会从零重新创建,而不是恢复原来的状态。我希望当PartyActivity启动EditPartyActivity时,它会停止保存状态,当我从EditPartyActivity返回PartyActivity时,它不会启动PartyActivity的新实例,但会恢复启动它的旧PartyActivity。这是我的代码:
AndroidManifest
<activity
android:name=".EditPartyActivity"
android:screenOrientation="portrait"
android:parentActivityName=".PartyActivity">
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".PartyActivity" />
</activity>
PartyActivity
Intent i = new Intent(PartyActivity.this, EditPartyActivity.class);
startActivity(i);
“startActivity(i)”之后没有“finish()”。
答案
通过在清单中指定父活动名称,它将始终设置要重新启动的父活动。如果您不想这样,您可以选择为向上按钮提供不同的功能,如下所示。理想情况下,您希望在基本活动中执行此操作,因此所有需要类似后退行为的活动都会执行相同操作,而不是在每个活动中放置代码。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home://user clicked up button
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
以上是关于在操作栏上按“向上导航按钮”并返回到父活动时出错的主要内容,如果未能解决你的问题,请参考以下文章
防止应用在导航栏上按下 Home 时返回 BootActivity