Selector textColor de RadioButton de Android

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 seleccionado RadioButton tendría color diferente que los demás.

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 utilizando 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 simplemente el primer elemento que cumple los criterios mínimos del estado .

Enlace de origen

Por lo tanto, en orden:

  1. State_selected nunca es cierto, ya que RadioButtons usa state_checked cuando está marcada.
  2. State_focused nunca se llama porque RadioButton nunca recibirá el foco de entrada.
  3. State_pressed debería estar funcionando. ¿Cuando usted sostiene su dedo abajo usted no ve el texto que aparece verde?
  4. State_focused false y state_pressed false terminan siendo por defecto 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 que se expresan adecuadamente.

La respuesta proporcionada por @GrantAmos es perfecta y funciona. Si desea seleccionar el 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 ahorre el tiempo de alguien.

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 se parece a esto.

  <?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" /> 

Luego en el botón de opción, defina en el atributo androide: textColor la 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" /> 
  <?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> 

Este trabajo para mí. Realmente cuando uso android: color = "@ color / dark_grey". No funcionó. Pero cuando cambié a dibujable lo hizo.

  • Creación de RadioButtons mediante programación
  • Botón de radio de Android
  • Android RadioButton opción en el lado derecho del texto
  • Android: ¿Dónde encontrar el RadioButton Drawable?
  • ¿Cómo comprobar si "Radiobutton" está marcado?
  • ¿Cómo agregar el margen entre la hormiga de radiobotón y es dibujable?
  • Es posible poner un TextView dentro de un grupo de radio. Pero, ¿es una buena práctica?
  • Android: Ayuda en RadioButton Toast
  • Selección de botones de radio Cambia Toast en Android
  • Android: Cómo cambiar el tamaño del RadioButton
  • Grupo de radio onclick evento no disparar, ¿cómo puedo saber cuál es seleccionado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.