android - 奇怪的复选框行为

标签 android checkbox

我想使用复选框来更改 TextView 的消息。当复选框被选中时,它显示文本“已选中”,如果没有,则显示文本“未选中”。

我使用了一个 onClickListener,一切似乎都有效,直到......我切换到横向:如果复选框被选中,复选框保持选中状态,而它应该被取消选中,因为 Activity 被重新创建并且他的起始值为“false” ".

我深入研究了一下,发现 checkBox 的值正如预期的那样是“false”。

代码说明:

@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

Activity 再次创建,checkBox 值为 false,但看起来像已选中!

那么问题是:

为什么复选框在屏幕上显示为选中状态?

最佳答案

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

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

关于android - 奇怪的复选框行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635250/

相关文章:

php - WebView - 如何使用从网站上的应用程序收集的数据

html - 删除 Bootstrap 复选框上的浅蓝色背景

python - 尝试使用具有多行及其属性的 Bokeh Widget Checkbox 组时出现值错误 "visible"

android - 基于 Unity 的 Android 游戏屏幕在 Lollipop 下对角线切成两半(但在 Jelly Bean 下不是)

java - Android BLE onCharacteristicChanged 未触发

android - OpenGL fragment 着色器正在移动对象

javascript - 尝试创建用于比较元素的复选框

java - 如何使用复选框将应用程序静音/取消静音

android - 使用自定义数组适配器从 android ListView 中删除选中的多个项目的复选框

android - android中的电话选择器api