【发布时间】:2012-03-08 19:49:33
【问题描述】:
我在 Activity1 中有一个(自定义)列表视图。当我单击一行时,Activity2 打开另一个(自定义)列表视图。在两个列表视图的行中都有几个对象:imageview、checkbox、textview。
当我将所有复选框设置为在 activity2 中选中,然后单击手机的 BACK 按钮时,应选中列表视图中相应行的复选框。但是,当我单击“返回”按钮时,什么也没有发生(检查了 Logcat,没有新行,没有日志,什么都没有)。
所以我想我覆盖了 BACK 按钮,所以当我点击它时,Activity1 应该打开。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intentstart = new Intent(Activity2.this, Activity1.class);
startActivity(intentstart);
return true;
}
return super.onKeyDown(keyCode, event);
}
这行得通,但我有顾忌。这是一个好的解决方案吗?有更好的解决方案吗? 因为这会破坏 BACK btn 的正常行为。
正常行为:
- Activity1 打开。我单击一行-> Activity2 打开。我单击返回-> 我看到了 Activity1。我点击一行 -> Activity2 打开.......玩了几分钟后,我在 Activity1,我点击返回,我在我的应用程序的打开屏幕。
新行为:
- Activity1 打开。我单击一行-> Activity2 打开。我单击返回-> 我看到了 Activity1。我点击一行-> Activity2 打开.......玩了几分钟后,我在 Activity1,我点击返回,Activity2 打开。然后再次返回-> Activity1 打开。然后再次返回->Activity2 打开,依此类推,直到我回滚之前打开的所有活动。
【问题讨论】: