Cómo obtener el índice seleccionado de un RadioGroup en Android

Resuelto John Boker asked hace 54 años • 19 respuestas

¿Existe una manera fácil de obtener el índice seleccionado de un RadioGroup en Android o tengo que usar OnCheckedChangeListener para escuchar los cambios y tener algo que contenga el último índice seleccionado?

xml de ejemplo:

<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>

si un usuario selecciona option 3Quiero obtener el índice, 2.

John Boker avatar Jan 01 '70 08:01 John Boker
Aceptado

Deberías poder hacer algo como esto:

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

Si RadioGroupcontiene otras vistas (como una TextView), el indexOfChild()método devolverá un índice incorrecto.

Para obtener el RadioButtontexto seleccionado en RadioGroup:

 RadioButton r = (RadioButton) radioButtonGroup.getChildAt(idx);
 String selectedtext = r.getText().toString();
BP. avatar Jun 22 '2011 13:06 BP.

Esto debería funcionar,

int index = myRadioGroup.indexOfChild(findViewById(myRadioGroup.getCheckedRadioButtonId()));
source.rar avatar Jun 22 '2011 14:06 source.rar