我试图让我的两个复选框有单独的值,当其中一个被选中时,另一个被取消选中。我可以通过以下方式完成此任务:
final CheckBox checkYes = (CheckBox) findViewById(R.id.visual_yes);
final CheckBox checkNo = (CheckBox) findViewById(R.id.visual_no);
CompoundButton.OnCheckedChangeListener checker = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (checkYes.isChecked() ) {
checkNo.setChecked(false);
// finish();
}
else if (checkNo.isChecked()) {
checkYes.setChecked(false);
// finish();
}
savePrefs("checkYesVisual", checkYes.isChecked());
savePrefs("checkNoVisual",checkNo.isChecked());
}
};
checkYes.setOnCheckedChangeListener(checker);
checkNo.setOnCheckedChangeListener(checker);
}
但我的问题是,我按下的第一个按钮是唯一一个工作方式。例如,如果我先按“是”,然后在它不切换后按“否”。但如果我按“否”,然后按“是”,则检查开关(如我所愿)。
我认为我的问题在于当单击yes时将checkno文本框设置为false,并且该值只是保存到取消选中yes框。
有什么建议吗?
最佳答案
您可以使用单选按钮组获得此行为