我有4个复选框。我希望用户只选择其中两个。如何设置该限制?
答案 0 :(得分:5)
您可以轻松拥有一个int
变量来存储当前检查了多少个复选框...然后在任何时候调用onCheckedChanged()
,您检查该变量以及它是否已经是第三个复选框检查,你只需将其设置为再次取消选中...
我们假设您从未选中的所有复选框开始。所以你这样做:
int numberOfCheckboxesChecked = 0;
然后设置OnCheckChangedListener
:
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked && numberOfCheckboxesChecked >= 2) {
checkbox1.setChecked(false);
} else {
// the checkbox either got unchecked
// or there are less than 2 other checkboxes checked
// change your counter accordingly
if (isChecked) {
numberOfCheckboxesChecked++;
} else {
numberOfCheckboxesChecked--;
}
// now everything is fine and you can do whatever
// checking the checkbox should do here
}
}
});
(我没有测试过代码,但它应该可以工作。)