sirve - cómo configurar el botón de opción seleccionado como predeterminado en radiogroup con Android
radiobutton android checked (8)
RadioGroup
y RadioButton
dinámicamente de la siguiente manera
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioBtn2.setChecked(true);
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
Aquí el paso radioBtn2.setChecked(true);
causa que radioBtn2
siempre radioBtn2
marcado. Eso significa que no puedo desmarcar radioBtn2
marcando otros dos botones de radio ( radioBtn1
, radioBtn3
). Quiero hacer que RadioGroup
solo pueda verificar un botón de radio a la vez (ahora puede verificar dos botones de radio a la vez). ¿Como puedó resolver esté problema?
Agrega android:checked = "true"
en tu activity.xml
En el archivo XML, configure el campo android:checkedButton
en su RadioGroup
, con la identificación de su RadioButton
predeterminado:
<RadioGroup
....
android:checkedButton="@+id/button_1">
<RadioButton
android:id="@+id/button_1"
...../>
<RadioButton
android:id="@+id/button_2"
...../>
<RadioButton
android:id="@+id/button_3"
...../>
</RadioGroup>
En el caso del atributo xml es android:checkedButton
que toma el id
del RadioButton
para ser verificado.
<RadioGroup
...
...
android:checkedButton="@+id/IdOfTheRadioButtonInsideThatTobeChecked"
... >....</RadioGroup>
Es un error de RadioGroup
RadioButton radioBtn2 = new RadioButton(context);
radioBtn2 sin viewId y generateViewId está en onChildViewAdded ()
public void onChildViewAdded(View parent, View child) {
if (parent == RadioGroup.this && child instanceof RadioButton) {
int id = child.getId();
// generates an id if it''s missing
if (id == View.NO_ID) {
id = View.generateViewId();
child.setId(id);
}
((RadioButton) child).setOnCheckedChangeWidgetListener(
mChildOnCheckedChangeListener);
}
if (mOnHierarchyChangeListener != null) {
mOnHierarchyChangeListener.onChildViewAdded(parent, child);
}
}
entonces, primero radioGroup.addView (radioBtn2), luego radioBtn2.setChecked (true);
Me gusta esto:
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
radioBtn2.setChecked(true);
Hubo el mismo problema en el código de mi colega. Esto suena como que su grupo de radio no está configurado correctamente con sus botones de radio. Esta es la razón por la que puede seleccionar múltiples veces los botones de radio. Probé muchas cosas, finalmente hice un truco que está mal en realidad, pero funciona bien.
for ( int i = 0 ; i < myCount ; i++ )
{
if ( i != k )
{
System.out.println ( "i = " + i );
radio1[i].setChecked(false);
}
}
Aquí configuré un ciclo for, que busca los botones de opción disponibles y los deselecciona a todos excepto el nuevo clickeado. intentalo.
deberías verificar el botón de radio en el grupo de radio de esta manera:
radiogroup.check(IdOfYourButton)
Por supuesto, primero tienes que establecer un Id para tus botones de radio
editar: lo olvidé, radioButton.getId()
funciona también, thx Ramesh
RadioGroup radioGroup = new RadioGroup(WvActivity.this);
RadioButton radioBtn1 = new RadioButton(this);
RadioButton radioBtn2 = new RadioButton(this);
RadioButton radioBtn3 = new RadioButton(this);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
radioGroup.check(radioBtn2.getId());
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
radioBtn2.setChecked(true);