コードを変えてカスタムlistView
しましsingle_row.xml
た。何かが機能していますが、ロジックがめちゃくちゃになっていると思います。目標は同じで、2 つの「チェック」のみを許可し、2 つの「チェック」が完了すると他の可能性をブロックしますtrue
。しかし、行われた「チェック」も変更します。
例: フェーズ 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);
}
}
});
解決済み
ここで答えを見ました:チェックできるチェックボックスの数を制限する方法は?
と私のコード:
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
}
}
});