5

ループを使用してチェックボックスを作成しましたが、検証したいと思います。チェックボックスから3つだけをチェックしたいのと同じように、4つ目のチェックボックスを押すと、アラートが表示され、チェックを外す必要があります。

ここに画像の説明を入力してください

そして、4を押すとアラートを受け取ることができますが、チェックを外していません。

誰かがそのような問題に直面しました、そしてあなたはそれをどのように解決しましたか?

4

1 に答える 1

11
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)を追加する必要もあります。

于 2012-09-21T17:50:22.617 に答える