我有一个Activity1中的(自定义)列表视图。当我点击一行时,Activity2以另一个(自定义)列表视图打开。在两个列表视图的行中都有一些对象:imageview,复选框,textview。
当我将所有复选框设置为在activity2中选中时,并单击我手机的BACK按钮时,应检查listview中相应行的复选框。但是,当我点击BACK按钮时,没有任何反应(检查Logcat,没有新行,没有日志,没有任何事)。
所以我想我重写BACK按钮,所以当我点击它时,Activity1应该打开。Android重载后退按钮
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的正常行为。
正常行为:
- 活动1打开。我点击一行 - > Activity2打开。我点击返回 - >我看到Activity1。我点击一行 - > Activity2打开.......打了几分钟后,我在Activity1,我点击回来,我在我的应用程序的打开屏幕。
新行为:
- 活动1打开。我点击一行 - > Activity2打开。我点击返回 - >我看到Activity1。我点击一行 - > Activity2打开.......打了几分钟后,我在Activity1,我点击回来,打开Activity2。然后再回来 - > Activity1打开。然后再回来 - > Activity2打开等等,直到我回滚所有以前打开的活动。
谢谢!工作和解释清楚! – erdomester 2012-03-08 20:26:16
我正在使用sqlite并循环检查复选框的状态。你写的东西可能会更容易,但一旦它正在工作,我不想修改我的代码:) – erdomester 2012-03-08 20:35:06