ループを使用してチェックボックスを作成しましたが、検証したいと思います。チェックボックスから3つだけをチェックしたいのと同じように、4つ目のチェックボックスを押すと、アラートが表示され、チェックを外す必要があります。
そして、4を押すとアラートを受け取ることができますが、チェックを外していません。
誰かがそのような問題に直面しました、そしてあなたはそれをどのように解決しましたか?
int i;
for (i = 0; i < 20; i++) {
CheckBox ch = new CheckBox(this);
ch.setTag(Integer.valueOf(i));
ch.setText("CheckBox " + i);
ch.setChecked(false);
ch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
numChecked++;
} else {
numChecked--;
}
if (numChecked == 4) {
buttonView.setChecked(false);
numChecked--;
// fourth one selected, show your dialog
}
}
});
}
また、numCheckedを呼び出すグローバル変数も必要になります。
int numChecked = 0;
チェックボックスをレイアウトに追加するには、ループの最後に.addView(ch)を追加する必要もあります。