2016-05-11 20 views
0

Ich möchte Radio-Schaltflächen abrufen, die in XML erstellt wurden. Es ist in Ordnung. Aber wenn ich überprüfe, ob dieser Radio-Button aktiviert ist, Android Studio mir sagen, dass der Radioknopf abrufen leer ist.Status des Optionsfelds kann nicht abgerufen werden

XML:

<RadioGroup 
    android:layout_width="148dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/RadioGroup_MODE"> 
    <!-- android:buttonTint="@color/BouttonsRadio"--> 

    <RadioButton 
     android:layout_width="137dp" 
     android:layout_height="wrap_content" 
     android:text="@string/Mode_J" 
     android:id="@+id/BouttonRADIO_JOUR" 
     android:layout_gravity="center_horizontal" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 

    <RadioButton 
     android:layout_width="137dp" 
     android:layout_height="wrap_content" 
     android:text="@string/Mode_N" 
     android:id="@+id/BouttonRADIO_NUIT" 
     android:layout_gravity="center_horizontal" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 

</RadioGroup> 

JAVA:

final RadioButton radiobutton_mode_j = (RadioButton) findViewById(R.id.BouttonRADIO_JOUR); 
    final RadioButton radiobutton_mode_n = (RadioButton) findViewById(R.id.BouttonRADIO_NUIT); 

ich diesen Code für den Check verwenden, wenn es dieses Radiobutton ist, die überprüft wird:

radiobutton_mode_j.isChecked() 
radiobutton_mode_n.isChecked() 

Antwort

1

unten Code Versuchen:

 int selectedId = radioGroup.getCheckedRadioButtonId(); 

    RadioButton radioButton = (RadioButton) findViewById(selectedId); 

    Toast.makeText(MyAndroidAppActivity.this, 
        radioButton.getText(), Toast.LENGTH_SHORT).show(); 

bearbeiten

Hier ist der vollständige Code wie pro Ihre Anfrage:

xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <RadioGroup 
    android:layout_width="148dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/RadioGroup_MODE"> 
    <!-- android:buttonTint="@color/BouttonsRadio"--> 

    <RadioButton 
     android:layout_width="137dp" 
     android:layout_height="wrap_content" 
     android:text="@string/Mode_J" 
     android:id="@+id/BouttonRADIO_JOUR" 
     android:layout_gravity="center_horizontal" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 

    <RadioButton 
     android:layout_width="137dp" 
     android:layout_height="wrap_content" 
     android:text="@string/Mode_N" 
     android:id="@+id/BouttonRADIO_NUIT" 
     android:layout_gravity="center_horizontal" 
     android:textSize="20dp" 
     android:textStyle="bold" /> 

</RadioGroup> 
<Button 
    android:id="@+id/btnDisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Submit" /> 

Aktivität:

private RadioGroup radioGroup; 
    private RadioButton radioButton; 
    private Button btnDisplay; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    radioGroup = (RadioGroup) findViewById(R.id.RadioGroup_MODE); 
    btnDisplay = (Button) findViewById(R.id.btnDisplay); 

    btnDisplay.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

       // get selected radio button from radioGroup 
      int selectedId = radioGroup.getCheckedRadioButtonId(); 

      // find the radiobutton by returned id 
       radioButton = (RadioButton) findViewById(selectedId); 

      Toast.makeText(MyAndroidAppActivity.this, 
       radioButton.getText(), Toast.LENGTH_SHORT).show(); 

     } 

    }); 

    } 
+0

Danke für Ihre Antwort. Aber ich bin ein Anfänger in Android dev, und ich verstehe nicht, was ist Ihre Variable "radioButton" – McNavy

+0

@McNavy Ok, ich aktualisiere meine Antwort. –

+0

@McNavy Sie müssen radioButtons nicht wie Sie initialisieren, folgen Sie einfach dem obigen Code und akzeptieren Sie es, wenn es nützlich ist. –

0

Versuchen Sie dies:

RadioGroup rg = (RadioGroup) v.findViewById(R.id.RadioGroup_MODE); 
if(rg.getCheckedRadioButtonId() != -1){ 
      //one of the Radiobuttons is checked 

     }else { 
      //none of the Radiobuttons is checked 
     } 
+0

Danke, aber ich habe eine Radiogruppe mit zwei Radiobuttons. Ich weiß nicht, wie ich Ihre Lösung mit meinem Code anpassen kann. Kann mich das bitte anpassen? – McNavy

Verwandte Themen