2015-07-21 56 views
0

我試圖在裏面有2個單選按鈕的地方使用收音機組。我想爲每個單選按鈕設置一個值,例如值爲男性和女性。之後,當我點擊我的單選按鈕時,它將顯示所選的值。你怎麼能做到這一點?感謝您的幫助。如何設置收音機組內的單選按鈕的值android

我已經試過這樣的事情只是爲了測試在我將如何設置一個值

public void onRadioButtonClicked(View radioButton) { 
    int count = radioGroup.getChildCount(); 
    for (int i = 0; i < count; i++) { 
     View o = radioGroup.getChildAt(i); 
     if (o instanceof RadioButton) { 

      RadioButton radioBtn = (RadioButton)o; 
      // get the state 
      boolean isChecked = radioBtn.isChecked(); 
      // to set the check 
      radioBtn.setChecked(true); 

     } 
    } 
} 

但我認爲它不是我要找的。

我已經試過radioGroup.setId()假設單選按鈕已經有值,但它只是顯示無意義的數字。

+0

如果你還沒有嘗試過什麼是建議你做。這可能有助於:OnCheckedChangeListener –

+0

我已更新我的問題@Karakuri –

回答

2

您應該使用RadioGroupOnCheckedChangeListener在您的代碼中檢測何時選擇了RadioButton。在您的佈局XML:

<RadioGroup 
    android:id="@+id/radioGroup" 
    ... > 

    <RadioButton 
     android:id="@+id/radioButton1" 
     ... /> 

    <RadioButton 
     android:id="@+id/radioButton2" 
     ... /> 
</RadioGroup> 

您的活動/片段,建立像這樣:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangedListener() { 

    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     <type> value = <default value>; 
     switch (checkedId) { 
     case R.id.radioButton1: 
      value = ...; 
      break; 
     case R.id.radioButton2: 
      value = ...; 
      break; 
     } 
     // do something with value 
    } 
}); 
+0

我有一個錯誤,說'不能解決方法'setOnCheckedChangedListener()「'我應該需要把任何進口@ Karakuri –

+0

有一個錯字,我修好了 – Karakuri

+0

非常感謝:) –

0

確保您的單選按鈕被包裹的無線電組中象下面這樣:

 <RadioGroup 
      android:id="@+id/myRadioGroup" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <RadioButton 
       android:id="@+id/radioGroupButtonMale" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" /> 

      <RadioButton 
       android:id="@+id/radioGroupButtonFemale" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content"/> 
     </RadioGroup> 

而在代碼中,要設置的值,

RadioGroup mySelection = (RadioGroup)findViewById(R.id.myRadioGroup); 
int radioButtonId = mySelection.getCheckedRadioButtonId(); 
String selectedValue; 
    switch (radioButtonId) 
    { 
     case R.id.radioGroupButtonMale: 
      selectedValue = "Value for Male"; 
      break; 
     case R.id.radioGroupButtonFemale: 
      selectedValue = "Value for Female"; 
      break; 
    } 
+0

您應該使用['RadioGroup.OnCheckedChangedListener'](https://developer.android.com/reference/android/widget/RadioGroup.OnCheckedChangeListener.html )。 – Karakuri

相關問題