我有4个复选框。我希望用户仅选择其中两个。如何设置该限制?
您可以轻松地使用一个int变量来存储当前选中的复选框的数量…然后onCheckedChanged()调用任何时间,检查该变量,如果它已经是要选中的第三个复选框,则只需将其设置为再次取消选中即可。
int
onCheckedChanged()
假设您首先取消选中所有复选框。所以你也是:
int numberOfCheckboxesChecked = 0;
然后设置OnCheckChangedListener:
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 } } });
(我尚未测试过代码,但应该可以。)