5

我已经使用循环创建了复选框,我想验证它。就像我只想从复选框中选中 3 个一样,当我按下第 4 个时,它应该显示一个警报并取消选中它。

在此处输入图像描述

当我按下 4the 时,我能够收到警报,但它并没有取消选中。

有人遇到过这样的问题,你是怎么解决的?

4

1 回答 1

11
int i;
for (i = 0; i < 20; i++) {
    CheckBox ch = new CheckBox(this);
    ch.setTag(Integer.valueOf(i));
    ch.setText("CheckBox " + i);
    ch.setChecked(false);
    ch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                numChecked++;
            } else {
                numChecked--;
            }

            if (numChecked == 4) {
                buttonView.setChecked(false);
                numChecked--;
                // fourth one selected, show your dialog
            }
        }
    });
}

您还需要一个全局变量调用 numChecked:

int numChecked = 0;

您还需要在循环末尾添加一个 .addView(ch) 以将 CheckBoxes 添加到您的布局中。

于 2012-09-21T17:50:22.617 回答