如何在android中处理检查和取消选中动态创建的复选框

Kri*_*ris 4 checkbox android

我使用循环创建了复选框,我想验证它.就像我只想从复选框中只检查3个,当我按下第4个时它应该显示警告并取消选中它.

在此输入图像描述

当我按下它时,我能够得到警报,但它没有取消选中.

任何人都面临这样的问题,你是如何解决的?

Rag*_*ood 10

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
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

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

int numChecked = 0;
Run Code Online (Sandbox Code Playgroud)

您还需要在循环结束时添加.addView(ch)以将CheckBox添加到布局中.