RadioGroup extendiendo RelativeLayout?

Estoy tratando de hacer una cuadrícula de botones de radio para mi aplicación, lo que he aprendido es que esto no es posible utilizando regular RadioGroup ya que se extiende LinearLayout y si se trata de arreglar los RadioButtons utilizando RelativeLayout INSIDE el RadioGroup el RadioGroup doesn ' T vea los Buttons dentro de RelativeLayout .

Así que para arreglar esto quiero hacer un RadioGroup personalizado que extienda RelativeLayout en lugar de LinearLayout.

¿Cómo hago esto?

ACTUALIZACIÓN: hice lo que usted dijo pero tengo estos errores que no sé cómo fijar en el archivo de la clase:

 Description Resource Path Location Type RadioGroup_checkedButton cannot be resolved or is not a field RadioGroupRelative.java /BlockBall/src/com/stickfigs/blockball line 81 Java Problem The constructor RelativeLayout.LayoutParams(int, int, float) is undefined RadioGroupRelative.java /BlockBall/src/com/stickfigs/blockball line 265 Java Problem The method setOnCheckedChangeWidgetListener(CompoundButton.OnCheckedChangeListener) is undefined for the type RadioButton RadioGroupRelative.java /BlockBall/src/com/stickfigs/blockball line 363 Java Problem The method setOnCheckedChangeWidgetListener(null) is undefined for the type RadioButton RadioGroupRelative.java /BlockBall/src/com/stickfigs/blockball line 377 Java Problem VERTICAL cannot be resolved to a variable RadioGroupRelative.java /BlockBall/src/com/stickfigs/blockball line 68 Java Problem Widget_CompountButton_RadioButton cannot be resolved or is not a field RadioGroupRelative.java /BlockBall/src/com/stickfigs/blockball line 79 Java Problem 

2 Solutions collect form web for “RadioGroup extendiendo RelativeLayout?”

Necesitas obtener el código fuente de RadioGroup desde aquí , reemplazar todas las entradas de LinearLayout por RelativeLayout .

Agregue este código a algún archivo xml de su proyecto (normalmente su nombre es attrs.xml):

 <resources> <declare-styleable name="RadioGroup"> <attr name="android:checkedButton" /> </declare-styleable> </resources> 

Reemplace los constructores de RadioGroup con estos:

 public RadioGroup(Context context) { super(context); if (!isInEditMode()) { init(); } } public RadioGroup(Context context, AttributeSet attrs) { super(context, attrs); if (!isInEditMode()) { TypedArray attributes = context.obtainStyledAttributes( attrs, R.styleable.RadioGroup, 0, android.R.style.Widget_CompoundButton_RadioButton); int value = attributes.getResourceId(R.styleable.RadioGroup_checkedButton, View.NO_ID); if (value != View.NO_ID) { mCheckedId = value; } attributes.recycle(); init(); } } 

Quite el constructor siguiente de la clase interna LayoutParams :

 public LayoutParams(int w, int h, float initWeight) { super(w, h, initWeight); } 

Reemplazar todas las ocurrencias de las llamadas al método setOnCheckedChangeWidgetListener() con el método setOnCheckedChangeListener() . IMPORTANTE : En este caso, no será posible utilizar este método de un código que utiliza este widget.

No he probado esto, pero espero que esto funcione.

Copia la fuente de RadioGroup desde aquí y edítala para cambiarla para extender RelativeLayout en lugar de LinearLayout.

  • Dirección del elemento de derecha a izquierda en android con más de 4,2
  • ¿Cómo evitar las filtraciones de Eclipse en XServer al editar archivos XML de Android?
  • Android hdpi / mdpi / ldpi para la carpeta Valores?
  • Imageview se borra
  • El método más simple para convertir Json a Xml
  • Dimens.xml en la carpeta de valores de 7 "y 10" tableta, ¿cómo?
  • Android ImageButton no muestra la imagen, aunque es visible en la vista previa de Designer
  • Análisis de archivos XML grandes utilizando el analizador SAX (salte algunas líneas / etiquetas)
  • ListFragment aparece dos veces en el teléfono
  • ¿Cómo puedo reducir el relleno interno alrededor del texto dentro de un objeto de botón de Android?
  • "OnClick" en AutocompleteTextView provoca un error
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.