Java 阻止ActionBar后退按钮以重新创建MainActivity

Java 阻止ActionBar后退按钮以重新创建MainActivity,java,android,Java,Android,如何防止我的SecondActivity的ActionBar后退按钮(我们称之为ABBB)在单击时重新创建MainActivity 我在main活动中有一个ListView,可以使用SecondActivity对其进行编辑。问题是当用户按下ABBB时,ListView被重置为默认值 但是,当用户单击我的OK按钮或按下physical back按钮时,没有任何问题,因为我使用的是finish() 如果我使用这个代码…: switch (item.getItemId()) { case (a

如何防止我的
SecondActivity
ActionBar后退按钮(我们称之为ABBB)在单击时重新创建
MainActivity

我在
main活动中有一个
ListView
,可以使用
SecondActivity
对其进行编辑。问题是当用户按下ABBB时,
ListView
被重置为默认值

但是,当用户单击我的OK按钮或按下physical back按钮时,没有任何问题,因为我使用的是
finish()

如果我使用这个代码…:

switch (item.getItemId()) {
    case (android.R.id.home):
        finish();
}
…也有同样的问题,因为我想,这个方法是在“Android的代码”之后调用的


我如何完全覆盖Android ABBB的点击代码,将其设置为只调用
finish()

理想的情况是,当您处于
第二活动时(我认为,这意味着您处于编辑模式),您按下设备后退按钮或ABBB,您会向用户显示一个微妙的警报,告诉用户“他们真的想取消编辑”,或者继续并应用“联系人”应用程序中完成的编辑

也就是说,如果您只需要
finish()
按ABBB键的活动,那么上面显示的代码应该可以正常工作(尽管您需要将
返回true;
放在
finish()
之后)。它对我有用。请在您的
活动中尝试以下选项

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed(); // or finish();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

我把
放在backpressed()上,因为您的ABBB现在使用“模拟设备后退”按钮。

或者,您可以将父活动的启动模式设置为-

android:launchMode="singleTop"
这样做不会改变任何事情


开关(item.getItemId()){case(android.R.id.home):finish();}
的行为不应与此相同!你能从这两个活动中发布更多的代码吗?我已经不在我的电脑上了,所以我明天会试试这个。谢谢你的回答;)
android:launchMode="singleTop"