我有 4 个复选框。我希望用户只选择其中两个。如何设置这个限制?
问问题
4049 次
1 回答
6
您可以轻松地拥有一个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
}
}
});
(我没有测试过代码,但它应该可以工作。)
于 2013-04-25T16:40:09.343 回答