如何防止我的 SecondActivity
的 ActionBar 后退按钮(我们会说 ABBB)重新创建 MainActivity
点击时?
我在 MainActivity
中有一个 ListView
,可以使用 SecondActivity
对其进行编辑。问题是,当用户按下 ABBB 时,ListView
会重置为默认值...
但是,当用户单击“确定”按钮或按物理后退按钮时,没有任何问题,因为我使用的是 finish();
@Override
public void onBackPressed() {
finish();
}
如果我使用此代码...:
switch (item.getItemId()) {
case (android.R.id.home):
finish();
}
...存在同样的问题,因为我猜这个方法是在“Android 代码”之后调用的。
如何完全覆盖 Android ABBB 的单击代码以将其设置为仅调用 finish();
?
最佳答案
理想的情况是,当您处于 SecondActivity
时(我认为这意味着您处于编辑模式),按下设备后退按钮或 ABBB,您会显示向用户发出微妙的警报,说“他们真的想取消编辑吗”,或者继续应用在“联系人”应用程序中完成的编辑。
话虽这么说,如果您需要的只是在按下 ABBB 时 finish()
Activity ,那么上面显示的代码应该可以正常工作(尽管您需要将 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);
}
我放置了onBackPressed();
,因为您的 ABBB 现在会模仿您设备的后退按钮。
关于java - 防止 ActionBar 后退按钮重新创建 MainActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376839/