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"