我想使用复选框来更改 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");
}
});
}
开始画面:
检查:
切换到横向:
Activity 再次创建,checkBox 值为 false,但看起来像已选中!
那么问题是:
为什么复选框在屏幕上显示为选中状态?
最佳答案
禁用恢复应用于此复选框的实例状态
将 android:saveEnabled="false"添加到您的复选框 xml
关于android - 奇怪的复选框行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635250/