Cómo configurar el botón de radio marcado como predeterminado en radiogroup con Android

He creado RadioGroup y RadioButton dinámicamente como siguiente

 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); Hace que radioBtn2 siempre radioBtn2 marcada. Eso significa que no puedo desmarcar radioBtn2 comprobando otros dos botones de radio ( radioBtn1 , radioBtn3 ). Quiero hacer que RadioGroup pueda comprobar solamente un botón de radio a la vez (ahora puede comprobar dos radiobutton a la vez). ¿Como puedó resolver esté problema?

Usted debe comprobar el radiobutton en el radiogroup como esto:

radiogroup.check(IdOfYourButton)

Por supuesto, primero tiene que establecer una ID a sus botones de radio

Editar: i forgot, radioButton.getId() funciona también, thx Ramesh

En caso de que el atributo xml su android:checkedButton que toma el id del RadioButton para ser comprobado.

 <RadioGroup ... ... android:checkedButton="@+id/IdOfTheRadioButtonInsideThatTobeChecked" ... >....</RadioGroup> 

En el archivo XML, establezca el campo android:checkedButton en su RadioGroup , con el id 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> 
  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); 

Había el mismo problema en el código de mi colega. Esto suena como su grupo de radio no está ajustado correctamente con sus botones de radio. Esta es la razón por la cual puede seleccionar varios botones de radio. He intentado 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í establezco uno para el bucle, que comprueba para los botones de radio disponibles y de-selecciona cada uno excepto el nuevo hecho clic. intentalo.

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

Así, 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); 
  • ¿Posible que todos los botones de radio no estén marcados en una aplicación para Android?
  • Preparación del tipo de grupo de radio personalizado
  • RadioButtons con TextView en RadioGroup
  • Cómo hacer RadioGroup botones de radio con imágenes en Android ... ¿Cómo?
  • Grupo de radio no está recibiendo el foco en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.