2016-07-05 4 views
2

2つのチェックボックスに別の値を設定しようとしています。1つのチェックボックスをオフにしてもう一方のチェックボックスをオフにします。

final CheckBox checkYes = (CheckBox) findViewById(R.id.visual_yes); 
     final CheckBox checkNo = (CheckBox) findViewById(R.id.visual_no); 

     CompoundButton.OnCheckedChangeListener checker = new CompoundButton.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if (checkYes.isChecked()) { 

        checkNo.setChecked(false); 
//     finish(); 
       } 
       else if (checkNo.isChecked()) { 
        checkYes.setChecked(false); 

//     finish(); 
       } 
       savePrefs("checkYesVisual", checkYes.isChecked()); 
       savePrefs("checkNoVisual",checkNo.isChecked()); 
      } 
     }; 
     checkYes.setOnCheckedChangeListener(checker); 
     checkNo.setOnCheckedChangeListener(checker); 
    } 

が、私の問題は、私が押して最初のボタンは、どのようにそれが必要働く唯一のものであるということです。私はこの使用を達成することができますよ。たとえば、最初に「はい」を押してから、スイッチを入れずに「いいえ」を押すと、しかし、いいえを押してからはいにすると、チェックが切り替わります(私が望むように)。

私の問題は、yesをクリックしたときにcheckNoテキストボックスをfalseに設定し、その値がyesボックスがチェックされなくなるまで保存することだと思います。

提案がありますか?

+0

を使用して、この動作を得ることができますが、私はラジオボタンは、存在し、それが働いてしまった知らなかった@Ismaelありがとうございました!あなたがそれを答えとして書くなら、私はそれを正解とマークします。 – thenry

答えて

0

あなたはラジオボタングループ

2

Ismaelは言ったように、あなたが探している行動は、ラジオボタン付きラジオグループです。 1つだけチェックすることができ、自動的に他のチェックを解除します。

<?xml version="1.0" encoding="utf-8"?> 

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <RadioButton android:id="@+id/radio_pirates" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/pirates" 
     android:onClick="onRadioButtonClicked"/> 

    <RadioButton android:id="@+id/radio_ninjas" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/ninjas" 
     android:onClick="onRadioButtonClicked"/> 
</RadioGroup> 

あなたのニーズに合った答えをチェックしないでください。彼がすべての信用を失うので、答えとして彼のコメントを書くようにIsmaelに依頼してください。

関連する問題