0

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

4

1 回答 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 回答