在操作栏上按 "Up Navigation Button" 并返回父 Activity 时出错
Error when pressing "Up Navigation Button" on Action Bar and returning to the parent Activity
我对 Android 世界还比较陌生。我有一个 activity (PartyActivity) 显示一些关于聚会的信息。按下按钮 "Edit" 它会启动一个新的 activity (EditPartyActivity),允许用户编辑聚会的信息。 EditPartyActivity 在他的操作栏上有一个向上导航按钮,允许用户返回到 PartyActivity,这是我的问题。当我回到 PartyActivity 时,它是从零重新创建的,而不是恢复它原来的样子。我会在 PartyActivity 启动 EditPartyActivity 时停止保存他的状态,当我从 PartyActivity 返回时EditPartyActivity 它不会启动 PartyActivity 的新实例,但会恢复启动它的旧 PartyActivity。这是我的代码:
Android清单
<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>
派对活动
Intent i = new Intent(PartyActivity.this, EditPartyActivity.class);
startActivity(i);
"startActivity(i)"后没有"finish()"。
通过在清单中指定父 activity 名称,它将始终设置要重新启动的父 activity。如果您不想这样做,您可以选择为向上按钮提供不同的功能,如下所示。理想情况下,您希望在基础 activity 中执行此操作,以便所有需要类似后退行为的活动都执行相同的操作,而不是在每个 activity.
中放置下面的代码
@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);
}
我对 Android 世界还比较陌生。我有一个 activity (PartyActivity) 显示一些关于聚会的信息。按下按钮 "Edit" 它会启动一个新的 activity (EditPartyActivity),允许用户编辑聚会的信息。 EditPartyActivity 在他的操作栏上有一个向上导航按钮,允许用户返回到 PartyActivity,这是我的问题。当我回到 PartyActivity 时,它是从零重新创建的,而不是恢复它原来的样子。我会在 PartyActivity 启动 EditPartyActivity 时停止保存他的状态,当我从 PartyActivity 返回时EditPartyActivity 它不会启动 PartyActivity 的新实例,但会恢复启动它的旧 PartyActivity。这是我的代码:
Android清单
<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>
派对活动
Intent i = new Intent(PartyActivity.this, EditPartyActivity.class);
startActivity(i);
"startActivity(i)"后没有"finish()"。
通过在清单中指定父 activity 名称,它将始终设置要重新启动的父 activity。如果您不想这样做,您可以选择为向上按钮提供不同的功能,如下所示。理想情况下,您希望在基础 activity 中执行此操作,以便所有需要类似后退行为的活动都执行相同的操作,而不是在每个 activity.
中放置下面的代码@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);
}