¿Cómo puedo crear un radiogrupo 2×2?

Hola, quiero crear un grupo de radio 2×2, así que logré hacer esto usando dos radiogrupos. Pero el problema es que ahora puedo seleccionar dos botones de radio en vez de uno solo. ¿Cómo puedo tratar de hacer esto?

Preciso que uso kotlin para desarrollar.

Gracias !

Aquí tienes una pregunta muy similar: gridlayout 3×3. Porque no puedes hacer lo que quieres y quieres trivialy, debes aceptar 1 de las respuestas de la pregunta anterior. Lo que hice:

 public class GRadioGroup { List<RadioButton> radios = new ArrayList<RadioButton>(); /** * Constructor, which allows you to pass number of RadioButton instances, * making a group. * * @param radios * One RadioButton or more. */ public GRadioGroup(RadioButton... radios) { super(); for (RadioButton rb : radios) { this.radios.add(rb); rb.setOnClickListener(onClick); } } /** * Constructor, which allows you to pass number of RadioButtons * represented by resource IDs, making a group. * * @param activity * Current View (or Activity) to which those RadioButtons * belong. * @param radiosIDs * One RadioButton or more. */ public GRadioGroup(View activity, int... radiosIDs) { super(); for (int radioButtonID : radiosIDs) { RadioButton rb = (RadioButton)activity.findViewById(radioButtonID); if (rb != null) { this.radios.add(rb); rb.setOnClickListener(onClick); } } } /** * This occurs everytime when one of RadioButtons is clicked, * and deselects all others in the group. */ public void addRadioButtonsToGroup(RadioButton rb){ radios.add(rb); rb.setOnClickListener(onClick); } OnClickListener onClick = new OnClickListener() { @Override public void onClick(View v) { // let's deselect all radios in group for (RadioButton rb : radios) { ViewParent p = rb.getParent(); if (p.getClass().equals(RadioGroup.class)) { // if RadioButton belongs to RadioGroup, // then deselect all radios in it RadioGroup rg = (RadioGroup) p; rg.clearCheck(); } else { // if RadioButton DOES NOT belong to RadioGroup, // just deselect it rb.setChecked(false); } } // now let's select currently clicked RadioButton if (!v.getClass().equals(RadioButton.class)) { RadioButton rb = (RadioButton) v; rb.setChecked(true); } } }; /** * ** Returns the Id of the radio button that is checked or -1 if none are checked * * @return */ public int getCheckedRadioButtonId() { int checkedId = -1; // Loop each radio button for (RadioButton rb : radios) { if (rb.isChecked()) return rb.getId(); } return checkedId; } public void setCheckedRadioButton(int pos) { // let's deselect all radios in group for (RadioButton rb : radios) { ViewParent p = rb.getParent(); if (p.getClass().equals(RadioGroup.class)) { // if RadioButton belongs to RadioGroup, // then deselect all radios in it RadioGroup rg = (RadioGroup) p; rg.clearCheck(); } else { // if RadioButton DOES NOT belong to RadioGroup, // just deselect it rb.setChecked(false); } } radios.get(pos).setChecked(true); } public void setCheckedRadioButtonDefault() { radios.get(0).setChecked(true); } @Override public void finalize() { radios.clear(); } } 

Necesito agregar botones de radio programáticamente así que haga mi radiobutton.xml:

 <?xml version="1.0" encoding="utf-8"?> <RadioButton xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layoutDirection="rtl" android:paddingStart="@dimen/padding_right_rests_columns" android:paddingEnd="@dimen/padding_left_rest_column" android:textAlignment="center" android:layout_centerHorizontal="true" android:gravity="center" android:layout_gravity="center" android:layout_margin="5dp"> </RadioButton> 

Y para agregar (esto está en un fragment):

  GRadioGroup gr = new GRadioGroup(); RadioButton radioButton = (RadioButton) getActivity().getLayoutInflater().inflate(R.layout.radiobutton, null);//initialize and set content radioButton.setText("HEY") // And all the settings you want like position ... //finally gr.addRadioButtonsToGroup(radioButton); 

Desventajas? tienes que manejar el grupo de radio seleccionado con bundle o intents si la actividad / fragment / lo que sea se destruyó.

¡Espero ayudarte!

  • Kotlin coroutines CalledFromWrongThreadException
  • ¿Cómo adjunto fonts para Kotlin en Android Studio?
  • Patrón de layout de puente que resulta en demasiados generics
  • ¿Por qué spring-data-elasticsearch no usa el objectmapper desde el context de spring?
  • Métodos de interfaz de anulación de Android kotlin dentro del método onCreateView ()
  • Kotlin || ¿Cómo distinguir la id de la vista de onClick () como la statement de cambio en Android?
  • Spring Data EntityScan de Neo4j 5 incluye objects complementarios cuando usa Kotlin
  • cómo implementar una llamada limitada con retrofit que bloquea el cliente y corutinas
  • ¿Hay alguna manera en Kotlin de tejer en el código antes / después / alnetworkingedor de funciones como las que hay con AspectJ en Java?
  • ¿Referencia a la function de extensión?
  • Referencias a funciones genéricas