我想使用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");
}
});
}
开始画面:
检查:
切换到横向:
再次创建活动,checkBox值为false,但看起来好像已经检查过了!
问题是:
为什么复选框会在屏幕上显示,就像检查一样?
答案 0 :(得分:2)
禁用恢复应用于此复选框的实例状态
将android:saveEnabled =“false”添加到您的复选框xml
答案 1 :(得分:0)
也适合我使用Switch的情况