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

时间:2015-10-27 19:26:17

标签: java android

我如何阻止SecondActivity ActionBar后退按钮(我们会说 ABBB )在点击时重新创建MainActivity?< / p>

我在ListView中有一个MainActivity,可以使用SecondActivity进行修改。问题是当用户按下ABBB时,ListView将重置为默认值...

但是,当用户点击我的确定按钮或按下物理后退按钮时,没有任何问题,因为我正在使用finish();

@Override
public void onBackPressed() {
    finish();
}

如果我使用此代码......:

switch (item.getItemId()) {
    case (android.R.id.home):
        finish();
}

...存在同样的问题,因为我猜这个方法在“Android的代码”之后被称为

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

2 个答案:

答案 0 :(得分:2)

理想情况是,你什么时候在SecondActivity(我认为这意味着你处于编辑模式),然后你按设备后退按钮或ABBB,你会显示一个微妙的警报用户说&#34;他们是否真的想要忽略编辑&#34;,或继续按照“联系人”应用程序应用编辑完成。

所以说,如果你需要的是finish()按下ABBB的活动,你上面显示的代码应该可以正常工作(尽管你需要在{{1}后放return true; }})。这个对我有用。在finish()中尝试以下内容。

activity

我放@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); // or finish(); return true; } return super.onOptionsItemSelected(item); } 因为您的ABBB现在模仿您的设备后退按钮。

答案 1 :(得分:0)

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

android:launchMode="singleTop"

这将完成所有事情而不会改变任何事情。

Reference