【发布时间】:2015-08-19 06:11:00
【问题描述】:
我有一个列表视图(比如 10 个带有复选框的项目),我想限制用户选择 i 项目(即 i=1 或 2 或 3 或 4...)。
如果i=3,用户只能从列表中选择3个复选框,他将无法选择第4个复选框。如果我们滚动列表视图,项目将被重置为旧值,因为我们知道这可以通过在模型类中使用布尔状态来处理。
如何限制用户从列表视图中选择特定项目?
这是我的听众:
final int i=3;
holder.cb_check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
model.setChecked(isChecked);
if (isChecked) {
GlobalCounter++;
} else {
GlobalCounter--;
}
if (GlobalCounter>i) {
buttonView.setChecked(false);
model.setChecked(false);
}
}
});
【问题讨论】:
-
这里有一个建议。维护一个柜台。每次用户选中一个框时,增加它,取消选中它然后减少它。检查计数器的值。如果它大于允许的不允许他检查。
-
我已经编辑了我的问题,请检查一下我已经尝试过了。需要一个好的方法。
-
我建议你将计数器的检查移到 setChecked 语句之上。
-
您想控制适配器内的选中复选框还是保存列表视图的活动/片段中的复选框?
-
@UmaKanth...是的,谢谢你的建议。