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

¿Hay 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 contiene el último índice seleccionado?

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

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

Usted debe ser capaz de hacer algo como esto:

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

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

Para seleccionar RadioButton Text en RadioGroup

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

Esto debería funcionar,

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

Podría tener una referencia al grupo de radio y usar getCheckedRadioButtonId () para obtener el ID de botón de radio marcado. Echa un vistazo aquí

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

Entonces, cuando necesite obtener la opción de radio seleccionada.

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

prueba esto

  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); } }); 

Puede utilizar OnCheckedChangeListener o puede utilizar getCheckedRadioButtonId ()

Puedes usar:

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

// use para obtener el id del elemento seleccionado

 int selectedID = myRadioGroup.getCheckedRadioButtonId(); 

// obtener la vista del elemento seleccionado

 View selectedView = (View)findViewById( selectedID); 

Funcionó perfectamente para mí de esta manera:

  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())); 

Todo lo que necesitas es establecer valores primero en tu RadioButton, por ejemplo:

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

Y luego cada vez que se escoge este radiobotón espacial, puedes tirar de su valor por la Id que le diste

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

¡Aclamaciones!

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(); } }); 

tu puedes hacer

 findViewById 

Del grupo de radio.

Aquí está la muestra:

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

Solo usa esto:

  int index = 2; boolean option3Checked = radioGroup.getCheckedRadioButtonId() == radioGroup.getChildAt(2).getId(); 
  • Obtener la imagen seleccionada de la galería en la vista de la imagen
  • ¿Cómo obtengo un botón para abrir otra actividad en Android Studio?
  • Dibujar la forma de Android xml diagonal con triángulos
  • Obtención de recursos de / res en dependencia
  • Android: idioma predeterminado de strings.xml
  • Tipo de letra personalizado
  • Google Analytics con Android: ¿Configurar programaticamente ga_reportUncaughtExceptions?
  • Exhibición de la secuencia de la Cadena de Android Signo de porcentaje
  • Android: Configurar la altura del botón en XML en función de su ancho
  • Archivo binario línea # 8: Error al inflar el fragmento de la clase, Google Maps
  • Cortar contenido en TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.