奇怪的CheckBox行为

时间:2014-07-08 15:03:31

标签: android checkbox

我想使用checkBox来更改textView的消息。选中复选框后,它会显示文本“已选中”,如果没有,则显示“未选中”文本。

我使用了onClickListener,一切似乎都工作,直到...我切换到横向:如果选中了复选框,则复选框保持选中状态,同时应该取消选中它,因为重新创建了活动并且其起始值为“false” ”

我稍微挖了一下,看到checkBox的值正如预期的那样“假”。

带代码的插图:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
    final TextView textView = (TextView) findViewById(R.id.textView1);

    //Code to check if checkbox is checked
    if (checkBox.isChecked())
        textView.setText("Checked");

    checkBox.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (checkBox.isChecked()) {
                textView.setText("Checked");
            }else 
                textView.setText("Unchecked");
        }
    });
}

开始画面:

enter image description here

检查:

enter image description here

切换到横向:

enter image description here

再次创建活动,checkBox值为false,但看起来好像已经检查过了!

问题是:

为什么复选框会在屏幕上显示,就像检查一样?

2 个答案:

答案 0 :(得分:2)

禁用恢复应用于此复选框的实例状态

将android:saveEnabled =“false”添加到您的复选框xml

答案 1 :(得分:0)

也适合我使用Switch的情况