Configuración del color TextView a un <selector> mediante programación
Tengo el siguiente selector definido en un archivo XML en res / color / redeemlist_item_color.xml :
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#FFFFFF" /> <!-- pressed --> <item android:state_selected="true" android:color="#FFFFFF" /> <!-- focused --> <item android:color="#000000" /> <!-- default --> </selector>
También tengo un TextView
en una disposición del artículo de ListView
. Cuando establezco android:textColor
en este TextView
al selector anterior en XML, el color cambia correctamente cuando se selecciona el elemento. Sin embargo, estoy intentando establecer este recurso mediante programación de la siguiente manera:
- Android: entero de un recurso xml
- Guardar archivo en android, por lo que el usuario no puede leer
- Cómo getResources (). GetString () funciona android
- Error en la preparación de la excepción de aumento de jugador de Android: estado 0x1
- Obtener ids de vista en un bucle for por programa?
holder.label.setTextColor(R.color.redeemlist_item_color);
Cuando se establece de esta manera, el color ya no cambia. ¿Se puede asignar un selector a un TextView
de esta manera?
- ¿Cómo hacer referencia a una cadena en strings.xml de una biblioteca de Android en código?
- ¿Cómo funciona el mapeo entre los recursos de android y el ID de recursos?
- GetQuantityString devuelve cadena incorrecta con valor 0
- ¿Cuál es el ancho de pantalla más pequeño posible en Android?
- El recurso colors.xml no funciona
- Herramienta de traducción para Android para ayudar a proporcionar el contexto
- Traducción automática de recursos de cadena
- Almacenamiento de IDs extraibles en una matriz XML
Creo que puede ser necesario agregar findViewById
o algo de esa variedad
Editar: lo anterior es incorrecto según mi comentario la respuesta correcta es
setTextColor(getResources().getColorStateList(R.color.redeemlist_item_color));
Tienes que usar getColorStateList ()
También estaba luchando con este problema, si desea tener una state list
, debe declarar en la carpeta de recursos de color
, en lugar de la carpeta setTextColor(getResources().getColorStateList(R.color.redeemlist_item_color))
, y utilizar el setTextColor(getResources().getColorStateList(R.color.redeemlist_item_color))
.
Puedes probar:
Holder.label.setTextColor (getResources (). GetColor (R.color.redeemlist_item_color));
en lugar de :
Holder.label.setTextColor (R.color.redeemlist_item_color);
Rasman está en lo correcto. Necesitas darle a la TextView una ID, android: id = "@ + / something". Se recupera una referencia a ese particular utilizando ese ID y findViewById, y luego puede establecer el color del texto.
- Android: Consecuencias de tener targetSDK> BuildTarget
- Small EditText tiene un setError con un montón de líneas