radiogroup - radiobutton android checked
Establecer el índice seleccionado de un RadioGrupo de Android (5)
Esto funcionó Para mí, creé el botón de radio de forma dinámica por
private void createRadioButton() {
RadioButton[] rb = new RadioButton[5];
RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
1.0f);
radioGroup.setOrientation(RadioGroup.HORIZONTAL);
for (int ID = 0; ID < 5; ID++) {
rb[ID] = new RadioButton(this);
rb[ID].setLayoutParams(layoutParams);
rb[ID].setText("Button_Text");
radioGroup.addView(rb[ID]); //the RadioButtons are added to the radioGroup instead of the layout
}
}
Ahora compruebe un botón usando,
int radio_button_Id = radioGroup.getChildAt(index).getId();
radioGroup.check( radio_button_Id );
¿Hay alguna forma de establecer el índice seleccionado de un RadioGroup en Android, que no sea recorrer los botones de radio y seleccionar el botón de opción en el índice seleccionado?
Nota: Estoy rellenando el Grupo de botones de radio en tiempo de ejecución.
La pregunta decía "establecer ÍNDICE seleccionado", así es cómo configurarlo por índice:
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
........
Información adicional: parece que Google quiere que uses la identificación en lugar del índice, porque usar la identificación es más a prueba de errores. Por ejemplo, si tiene otro elemento UI en su RadioGroup, o si otro desarrollador reordena los RadioButton, los índices podrían cambiar y no ser lo que usted esperaba. Pero si eres el único desarrollador, esto está totalmente bien.
La respuesta de Siavash es correcta:
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
Pero tenga en cuenta que un radioGroup puede contener vistas distintas de radioButtons, como este ejemplo que incluye una línea débil debajo de cada opción.
<RadioGroup
android:id="@+id/radioKb"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/kb1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Onscreen - ABC" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
<RadioButton
android:id="@+id/kb2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Onscreen - Qwerty" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
<RadioButton
android:id="@+id/kb3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Standard softkey" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
<RadioButton
android:id="@+id/kb4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
android:text="Physical keyboard" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#33000000" />
</RadioGroup>
En este caso, usar un índice de 1, por ejemplo, generaría un error. El ítem en el índice 1 es la primera línea de separación, no un radioButton. Los radioButtons en este ejemplo están en los índices 0, 2, 4, 6.
Si su grupo de radio está definido en un archivo xml de diseño, a cada botón se le puede asignar una identificación. Luego, solo revisa un botón como este
radioGroup.check(R.id.myButtonId);
Si creó su grupo de radio mediante programación (no estoy seguro de cómo lo hace ...), puede considerar crear un archivo xml de diseño especial solo para el grupo de radio para que pueda asignar identificadores R.id. * a los botones.
Consulte la respuesta a continuación si, de hecho, desea configurar el grupo de botones de opción por índice, consulte la respuesta a continuación.
puede hacer findViewById desde el grupo de radio.
((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true);`