我更改了代码并listView
使用single_row.xml
. 我有一些工作,但我认为我的逻辑搞砸了。目标还是一样的,只允许 2 次“检查”,一旦 2 次“检查”,就阻止其他可能性true
。但也要改变所做的“检查”。
例如:第一阶段
- [X] - 1;
- [X] - 2;
- [ ] - 3(阻止点击)
阶段2
- [X] - 1;
- [] - 2;
- [] - 3;
第三阶段
- [X] - 1;
- [] - 2; (阻止点击)
- [X] - 3;
这有道理吗?
这是我的代码checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) { // TODO Auto-generated method stub
// if
if (isChecked)
incr++;
if (!isChecked)
incr--;
if (incr > 2){
Toast.makeText(context, "Somente 2 ",
Toast.LENGTH_LONG).show();
buttonView.setEnabled(false);
}
}
});
解决了
在这里看到了答案:如何限制可以检查的复选框数量?
和我的代码:
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@覆盖
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked && incr >= 2) {
checkBox.setChecked(false);
Toast.makeText(context, "Somente 2 ", Toast.LENGTH_LONG)
.show();
} else {
// the checkbox either got unchecked
// or there are less than 2 other checkboxes checked
// change your counter accordingly
if (isChecked) {
incr++;
} else {
incr--;
}
// now everything is fine and you can do whatever
// checking the checkbox should do here
}
}
});