編輯1:已解決!!!!編輯2回答'listView`用`checkBox`,只允許2「選中」選項,擋住了其他的
我改變了代碼,並與single_row.xml
一個定製listView
。 我得到了一些工作,但我thik我的邏輯搞砸了。 目標仍然相同,只允許2個「檢查」,並且一旦2個「檢查」爲true
就阻止其他可能性。但也要改變所做的「檢查」。
e.g: 階段1
- [X] - 1;
- [X] - 2;
- [] - 3(封端點擊)
相2
- [X] - 1;
- [] - 2;
- [] - 3;
相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);
}
}
});
EDIT 2 ---->THE FIX代碼:
在這裏看到了答案:How to limit number of checkboxes that can be checked?
和我代碼:
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
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
}
}
});
但我已經有了int'cont = listV.getCheckedItemCount();'對於檢查的項目...或者不是那樣工作? – GuilhermeM
您需要在onItemClick偵聽器之前增加onItemClick偵聽器和Check Condition內的cont值,並將cont變量聲明爲全局變量。 –
嗡嗡聲...爲什麼增加'onItemClickListener()''cont'?不能像我一樣在'onItemClick'上? 並檢查條件?我怎麼做? 謝謝,並對所有的麻煩抱歉:/ – GuilhermeM