在操作栏上按“向上导航按钮”并返回到父活动时出错

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

在父活动上按下后退按钮

Excel VBA - 访问网站,生成报告并在 IE 对话框栏上按保存

操作栏上不确定的进度条上的空指针异常

从通知中导航到父活动

onActivityResult 方法没有被调用