假设我有 2 个复选框(“checkbox1”和“checkbox2”)并且我设置:SetChecked(true) 用于“checkbox1”和:SetChcked(false) 用于“checkbox2”。我的目的是在我单击其中一个时关联它们并在选中状态之间切换(如果选中“checkbox1”并且我选中了“checkbox2”,则将选中“checkbox2”并且将取消选中“checkbox1”,反之亦然)
这是我的代码:
final CheckBox ChckBoxNo = (CheckBox) promptsView.findViewById(R.id.ChkBoxNo);
final CheckBox ChckBoxYes = (CheckBox) promptsView.findViewById(R.id.ChkBoxYes);
ChckBoxNo.setChecked(true);
ChckBoxYes.setChecked(false);
ChckBoxNo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (ChckBoxNo.isChecked()) {
ChckBoxYes.setChecked(false);
} else if (!ChckBoxNo.isChecked()) {
ChckBoxYes.setChecked(true);
}
}
});
ChckBoxYes.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (ChckBoxYes.isChecked()) {
ChckBoxNo.setChecked(false);
} else if (!ChckBoxYes.isChecked()) {
ChckBoxNo.setChecked(true);
}
}
});
//these if's allways response to "ChckBoxNo.IsChecked()" ,even if its the
// opposite and "ChckBoxYes.isChcked()"
if(ChckBoxYes.isChecked())
{do ...
}
else if (ChckBoxNo.isChecked()
{ do ...
}
当我通过能见度运行应用程序时,一切都很好), ChckBoxYes.SetChecked(false) ,即使它的相反并且“ChckBoxYes”被检查了)我应该怎么做才能解决这个问题?谢谢 !