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

时间:2013-04-25 16:33:46

标签: java android

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

1 个答案:

答案 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
        }
    }
});

(我没有测试过代码,但它应该可以工作。)