Wie bekomme ich den ausgewählten Index einer RadioGroup in Android

Gibt es eine einfache Möglichkeit, den ausgewählten Index einer RadioGroup in Android zu bekommen, oder muss ich OnCheckedChangeListener verwenden, um auf Änderungen zu hören und etwas zu haben, das den letzten Index enthält?

Beispiel xml:

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio1" android:text="option 1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio2" android:text="option 2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio3" android:text="option 3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio4" android:text="option 4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio5" android:text="option 5" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup> 

Wenn ein Benutzer option 3 auswählt, möchte ich den Index bekommen, 2.

  • Android Lollipop Material Design Überlauf Menü Icon Farbe
  • Android-Studio-Vorschau wird verschwunden, wenn NestedScrollView XML hinzugefügt hat
  • Wie bekomme ich Integer-Wert von res / integers.xml?
  • Beispielprogramm für android Restful paring mit xml API
  • AVD Manager verliert nach dem Schließen und Wiedereröffnen selbst benutzerdefinierte Gerätedefinitionen
  • Android: textColor der deaktivierten Schaltfläche im Selektor nicht angezeigt?
  • Resizable appwidgets in Android 3.1
  • Kein Hintergrundbild wird auf Galaxy Nexus (NUR) angezeigt?
  • 13 Solutions collect form web for “Wie bekomme ich den ausgewählten Index einer RadioGroup in Android”

    Du solltest so etwas machen können:

     int radioButtonID = radioButtonGroup.getCheckedRadioButtonId(); View radioButton = radioButtonGroup.findViewById(radioButtonID); int idx = radioButtonGroup.indexOfChild(radioButton); 

    Wenn die RadioGroup andere Ansichten enthält (wie ein TextView ), dann wird die indexOfChild() Methode einen falschen Index zurückgeben.

    Um ausgewählten RadioButton Text auf RadioGroup zu erhalten

      RadioButton r = (RadioButton) radioButtonGroup.getChildAt(idx); String selectedtext = r.getText().toString(); 

    Das sollte funktionieren,

     int index = myRadioGroup.indexOfChild(findViewById(myRadioGroup.getCheckedRadioButtonId())); 

    Sie könnten einen Verweis auf die Funkgruppe haben und verwenden Sie getCheckedRadioButtonId () , um die getCheckedRadioButtonId () ID zu erhalten. Werfen Sie einen Blick hier

     RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio_group); 

    Dann, wenn du die gewählte Radio-Option bekommen musst.

     int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId(); if (checkedRadioButtonId == -1) { // No item selected } else{ if (checkedRadioButtonId == R.id.radio_button1) { // Do something with the button } } 

    Versuche dies

      RadioGroup group= (RadioGroup) getView().findViewById(R.id.radioGroup); group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { View radioButton = radioGroup.findViewById(i); int index = radioGroup.indexOfChild(radioButton); } }); 

    Sie können entweder OnCheckedChangeListener verwenden oder mit getCheckedRadioButtonId ()

    Sie können:

     RadioButton rb = (RadioButton) findViewById(rg.getCheckedRadioButtonId()); 

    // Verwenden Sie, um die ID des ausgewählten Elements zu erhalten

     int selectedID = myRadioGroup.getCheckedRadioButtonId(); 

    // bekomme die Ansicht des ausgewählten Artikels

     View selectedView = (View)findViewById( selectedID); 

    Es hat mir auf diese Weise perfekt geklappt:

      RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radio_group); int radioButtonID = radioGroup.getCheckedRadioButtonId(); RadioButton radioButton = (RadioButton) radioGroup.findViewById(radioButtonID); String selectedtext = (String) radioButton.getText(); 
      int index_selected = radio_grp.indexOfChild(radio_grp .findViewById(radio_grp.getCheckedRadioButtonId())); 

    Alles was Sie brauchen ist, um Werte zuerst auf Ihren RadioButton zu setzen, zum Beispiel:

     RadioButton radioButton = (RadioButton)findViewById(R.id.radioButton); radioButton.setId(1); //some int value 

    Und dann, wenn diese spacific radioButton gewählt wird, kannst du seinen Wert durch die Id ziehen, die du ihm gegeben hast

     RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radioGroup); int whichIndex = radioGroup.getCheckedRadioButtonId(); //of course the radioButton //should be inside the "radioGroup" //in the XML 

    Prost!

    RadioSexGroup = (RadioGroup) findViewById (R.id.radioGroup);

      btnDisplay=(Button)findViewById(R.id.button); btnDisplay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int selectedId=radioSexGroup.getCheckedRadioButtonId(); radioSexButton=(RadioButton)findViewById(selectedId); Toast.makeText(MainActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show(); } }); 

    du kannst tun

     findViewById 

    Von der Funkgruppe.

    Hier ist es Beispiel:

     ((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true); 

    Verwenden Sie einfach das:

      int index = 2; boolean option3Checked = radioGroup.getCheckedRadioButtonId() == radioGroup.getChildAt(2).getId(); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.