studio sirve seleccionar radiobutton que para limpiar horizontal deseleccionar agrupar activar android radio-button

sirve - radiobutton android checked



Android RadioButton textColor selector (5)

La respuesta proporcionada por @GrantAmos es perfecta y funciona. Si desea enviar un selector de color de texto a través de XML, utilice este código.

android:textColor="@color/textview_selector"

Sin embargo, si desea configurar el selector mediante programación, utilice este código:

radioButton.setTextColor(ContextCompat.getColorStateList(getContext(), R.color.textview_selector));

Espero que le ahorre el tiempo a alguien.

Tengo un selector para textColor de un RadioButton como este:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="#fff"/> <item android:state_focused="true" android:color="#f00"/> <item android:state_pressed="true" android:color="#0f0"/> <item android:state_focused="false" android:state_pressed="false" android:color="#00f"/> </selector>

Esperaba que el RadioButton seleccionado tuviera un color diferente al de los otros.

Sin embargo, todos los RadioButton s tienen texto azul (usando android: state_focused = "false" android: state_pressed = "false"), incluso el que está seleccionado.

¿Qué estoy haciendo mal?


Parece que estás usando los selectores equivocados. Los documentos describen la selección de la siguiente manera:

Durante cada cambio de estado, la lista de estados se recorre de arriba a abajo y se utiliza el primer elemento que coincide con el estado actual; la selección no se basa en la "mejor coincidencia", sino en el primer elemento que cumple los criterios mínimos del estado. .

Enlace de la fuente

Entonces, en orden:

  1. state_selected nunca es verdadero ya que RadioButtons usa state_checked cuando está marcado.
  2. state_focused nunca se llama porque RadioButton nunca recibirá el foco de entrada.
  3. state_pressed debería estar funcionando. Cuando mantienes el dedo hacia abajo, ¿no ves que el texto aparece en verde?
  4. state_focused false y state_pressed false terminan siendo predeterminados para que veas azul.

Si desea ver diferentes estados, pruebe estos:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#0f0"/> <item android:state_checked="true" android:color="#fff"/> <item android:color="#00f"/> </selector>

He probado lo anterior y puedo ver todos los colores expresados ​​adecuadamente.


Según Android. https://developer.android.com/guide/topics/resources/color-list-resource.html . https://developer.android.com/reference/android/content/res/ColorStateList.html

Tienes que crear una carpeta llamada ''color'' en el directorio ''res'' y crear un nuevo archivo llamado radiobuttonstate.xml, por ejemplo, que tiene este aspecto.

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color="YOUR COLOR" /> <item android:state_pressed="true" android:state_enabled="false" android:color="YOUR COLOR" /> <item android:color="YOUR COLOR" android:state_checked="true"/> <item android:state_enabled="false" android:color="YOUR COLOR" /> <item android:color="YOUR COLOR" /> </selector>

luego, en su botón de radio, defina en el atributo android: textColor su lista de colores que definió anteriormente.

<RadioButton android:id="@+id/radio_H" android:layout_width="30dp" android:layout_height="30dp" android:text="@string/string_example" android:textColor="@color/radiobuttonstate" android:textAlignment="center" />


Use la propiedad marcada para el botón de radio.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#0f0"/> <item android:state_checked="true" android:color="#fff"/> <item android:color="#00f"/> </selector>


<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false" android:drawable="@color/dark_grey"/> <item android:state_checked="true" android:drawable="@color/topic_green"/> </selector>

Esta funciona para mí. En realidad, cuando uso Android: color = "@ color / dark_grey". No funciono Pero cuando cambié a dibujable lo hizo.