cómo poner el texto a la izquierda de un botón de radio en Android

Quiero poner el texto de un botón de opción a la izquierda no a la derecha

Encontré esta solución

     

pero el problema es que la gravedad del texto estará a la izquierda, lo que quiero es ponerlo a la derecha porque estoy escribiendo palabras en árabe

enter image description here

Agregue android:gravity="right" en cada RadioButton como sigue ..

       

Intente agregar los siguientes atributos en RadioButton , debería funcionar, de esta manera aún puede mantener el efecto dominó en el botón de radio:

  android:layoutDirection="rtl" android:textAlignment="textStart" android:layout_gravity="start" 

Recuerde establecer la propiedad supportsRtl en verdadero en su manifiesto de aplicación.

por ejemplo:

    ....  

daría a conocer:

enter image description here

Hay una propiedad llamada android:drawableRight que establecerá el lado derecho del texto android:button y configurará el android:button null . verifique debajo del código:

Nota: Esta es una muestra, puede aplicarla a su radioButton.

   

Solo agrega:

 android:button="@null" android:drawableRight="@android:drawable/btn_radio" 

agregue esto en xml: (4.2 y superior)

 android:layoutDirection="rtl" 

para una versión anterior a la 4.2 use ViewCompat de android.support.v4.view:

 ViewCompat.setLayoutDirection(findViewById(R.id.radio_button), ViewCompat.LAYOUT_DIRECTION_RTL); 

En caso de que alguien todavía se esté preguntando cómo lograr esto, aquí hay una mejor solución en mi opinión: la clase RadioGroup amplía LineareLayout . Puede agregar un botón de opción simple y una Vista de texto al lado y fácilmente tener el mismo efecto:

       

Que luego hace un diseño como el siguiente:

enter image description here

En base a la respuesta de Irshu , sugiero la siguiente solución que utiliza el efecto de ondulación material y produce el siguiente resultado:

Manifestación

Si desea los divisores como se muestra en el GIF, simplemente agregue una vista con una altura de 1 y un color de fondo entre los botones de radio.

      

He usado un truco como el código a continuación para lograr esto en todos los SDK con la interfaz de usuario predeterminada y el comportamiento de selección predeterminado:

           

Ahora, para que los botones sean seleccionables individualmente, solo escriba el código para los botones en el oyente onCheckedChanged y haga que otros botones no sean seleccionados.

Me gusta esto:

 rb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { if(checked) rb2.setChecked(false); } }); 

prueba este código:

     

resultado: mostrar resultado

prueba este código y cambia los valores a tus palabras árabes ..

main.xml

         

Eche un vistazo al ejemplo “CustomChoiceList” , allí se explica cómo puede crear sus propias casillas de verificación / botones de opción o cómo puede crear un ListView con las casillas de verificación / botones de opción predeterminados utilizados en la configuración de Android, por ejemplo. Debe observar especialmente el archivo res / layout / sample_main.xml, se expande mucho.

  android:layout_width="wrap_content" android:layout_height="wrap_content" fontPath="@string/font_nunito_light" android:text="Male" android:layout_marginTop="@dimen/dp_10" android:drawablePadding="@dimen/dp_10" android:drawableStart="@drawable/selector_radio" android:button="@null" android:id="@+id/rb_" android:checked="true" android:textSize="@dimen/sp_15"