当方向改变时,不知何故,一个按钮的onclicklistener被调用

时间:2012-04-10 13:01:00

标签: android onclick orientation

发生问题的视图中有一个按钮和一个tabhost。 按钮的onclick侦听器更改当前选项卡中的某些文本。 问题是当我改变方向(端口到陆地或陆地到港口)时,按钮的onclicklistener以某种方式被调用/撇去并且当前选项卡中的文本发生变化。为什么会发生这种情况?解决方案是什么?

myActivity extends Activity{
    onCreate(bundle){
        ..
        ..
        add(button1);
        button1.onClickListner(new OnClickListener(){
             ..
             someAlertDialog.show();             //line xxx

        });
    }

}

它实际上没有显示任何警告对话框(它不应该这样做)但是说错误日志中有@line xxx泄漏。 整个日志即将推出。

编辑:我现在无法获取错误日志,但在方向更改后仍然会发生奇怪的事情。

1 个答案:

答案 0 :(得分:0)

默认情况下,方向更改会导致当前活动实例被销毁,然后重新创建并传递前一个实例的状态。如果发生这种情况时屏幕上出现对话框,则会泄漏显示它的窗口。

由于您在调用Activity#showDialog时未使用onDestroy来管理对话框,因此您必须手动执行此操作。因此,您必须覆盖Activity#onDestroy,并在显示时调用Dialog#dismiss