0

コードを変えてカスタム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
                }
            }
        });
4

2 に答える 2

0

これは正確な答えではありませんが、役立つかもしれません。xml ファイル <RadioGroup android:id="@+id/types"> <RadioButton android:id="@+id/take_out" android:text="Take-Out" android:checked="true" /> <RadioButton android:id="@+id/sit_down" android:text="Sit-Down" /> <RadioButton android:id="@+id/delivery" android:text="Delivery" /> </RadioGroup>

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;`

この公式サイトをフォローしてください。

于 2014-04-01T04:25:00.933 に答える
0

incr と呼ばれる整数変数を作成し、(リストビュー リスナーで) 選択ごとにインクリメントし、値が 2 つ以上交差する場合は、停止してトーストにメッセージを表示します。これは簡単でトリッキーな方法です。

于 2014-03-28T11:24:46.347 に答える