小编典典

如何限制可以选中的复选框数量?

java

我有4个复选框。我希望用户仅选择其中两个。如何设置该限制?


阅读 214

收藏
2020-11-30

共1个答案

小编典典

您可以轻松地使用一个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
        }
    }
});

(我尚未测试过代码,但应该可以。)

2020-11-30