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.

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(); 
  • Erstellen eines benutzerdefinierten Popup-Dialogmenüs
  • Umschalten zwischen Referenz- und Wertvorschau von String-Ressourcen im XML-Editor
  • Wie kann ich Android View in LinearLayout Klasse aufblasen?
  • Android-Karten: Fehler beim Finden des Stils 'mapViewStyle' im aktuellen Thema
  • Android - Unbekannte Attribut-Stil auf einem Fragment-Tag
  • Android: popupBackground funktioniert nicht für Kontextmenüs
  • Xamarin.Android: Wie zu erfassen Button-Events im OnClick XML-Attribut definiert?
  • Wert entspricht match_parent oder fill_parent in dimens.xml?
  • Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.