单击时,如何阻止我的SecondActivity
的ActionBar后退按钮(我们要说ABBB)重新创建MainActivity
?
我在MainActivity
中有一个ListView
,可以使用SecondActivity
进行编辑。问题是,当用户按下ABBB时,ListView
会重置为默认值。。。
然而,当用户点击我的OK按钮或按下物理后退按钮时,没有任何问题,因为我使用的是finish();
@Override
public void onBackPressed() {
finish();
}
如果我使用此代码…:
switch (item.getItemId()) {
case (android.R.id.home):
finish();
}
也有同样的问题,因为,我想,这个方法在"Android的代码"之后被称为。
我如何才能完全覆盖Android ABBB的点击代码,将其设置为只调用finish();
?
理想的情况是,当你处于SecondActivity
(我认为这意味着你处于编辑模式)时,按下设备后退按钮或ABBB,你会向用户显示一个微妙的警告,说"他们真的想取消编辑吗",或者继续应用联系人应用程序中完成的编辑。
话虽如此,如果您所需要的只是在按下ABBB时finish()
活动,那么上面显示的代码应该可以正常工作(尽管您需要将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现在模仿你的设备后退按钮。
或者,您可以将父活动的启动模式设置为-
android:launchMode="singleTop"
这将在不改变任何事情的情况下完成所有任务。
参考