Android `listView`with`checkBox`只允许2“;勾选“;选项,阻止其他选项
我更改了代码,并用Android `listView`with`checkBox`只允许2“;勾选“;选项,阻止其他选项,android,listview,multipleselection,Android,Listview,Multipleselection,我更改了代码,并用单行.xml创建了一个自定义的列表视图。 我有些东西在工作,但我觉得我的逻辑混乱了。 目标仍然是一样的,只允许2个“检查”,并在2个“检查”为true时阻止其他可能性。但也要改变“支票”所做的 e、 g: 第一阶段 [十] -1 [十] -2 []-3(阻止单击) 第二阶段 [十] -1 []2 []-3 第三阶段 [十] -1 []2;(阻止单击) [十] -3 这有什么意义吗 这是我的复选框的代码。setOnCheckedChangeListener(新的OnC
单行.xml
创建了一个自定义的列表视图。
我有些东西在工作,但我觉得我的逻辑混乱了。
目标仍然是一样的,只允许2个“检查”,并在2个“检查”为true
时阻止其他可能性。但也要改变“支票”所做的
e、 g:
第一阶段
- [十] -1李>
- [十] -2李>
- []-3(阻止单击)
第二阶段
- [十] -1李>
- []2李>
- []-3李>
第三阶段
- [十] -1李>
- []2;(阻止单击)
- [十] -3李>
这有什么意义吗
这是我的复选框的代码。setOnCheckedChangeListener(新的OnCheckedChangeListener(){
解决了的
我在这里看到了答案:
我的代码是:
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
}
}
});
创建一个整数变量,称之为incr,并为每个选择增加它(在listview侦听器上),如果值超过两个,则停止并在toast上显示消息,这将是一种简单而棘手的方法。这不是确切的答案,但可能会对您有所帮助。
xml文件
java文件
RadioGroup types=(RadioGroup)findViewById(R.id.types);
switch (types.getCheckedRadioButtonId()) {
case R.id.sit_down:
r.setType("sit_down");
break;
case R.id.take_out:
r.setType("take_out");
break;
case R.id.delivery:
r.setType("delivery");
break;`
和。但是我已经有int'cont=listV.getCheckedItemCount()了'对于选中的项…或者它不是这样工作的?您需要在onItemClick侦听器中增加cont的值,并在onItemClick侦听器之前检查条件,并将cont变量声明为全局变量。嗯…为什么在onItemClick()上增加cont
?它不能像我那样在onItemClick上吗?并检查条件?我该怎么做?谢谢你,对你的麻烦表示抱歉:/n不,你误解了,我说要在onItemClick()侦听器中增加值,如果(计数>2)检查条件,在此侦听器之前执行您所需的操作。我有返回所选项目数的cont=listV.getCheckedItemCount()
。我需要一个像您所说的“int incr”,以查看该数字是否大于2?但我不明白如何在侦听器之前“阻止”它:/谢谢您的回答!我将尝试并发布新闻:)嘿!很抱歉反应太晚了,但是我还赶上了其他事情。我更改了我的代码(现在将更新),并创建了一个自定义的列表视图来设置复选框。我既不使用单选按钮也不使用多选。有什么想法吗?只是编辑了它…有什么想法吗?
RadioGroup types=(RadioGroup)findViewById(R.id.types);
switch (types.getCheckedRadioButtonId()) {
case R.id.sit_down:
r.setType("sit_down");
break;
case R.id.take_out:
r.setType("take_out");
break;
case R.id.delivery:
r.setType("delivery");
break;`