我已经使用循环创建了复选框,我想对其进行验证。就像我只想从复选框中仅选中3一样,当我按4号时,它应该显示一个警报并取消选中它。
当我按4the时,我能够收到警报,但它并没有取消。
有人遇到过这样的问题,您是如何解决的?
最佳答案
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添加到布局中。