2012-04-03 15 views
11
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:color="#ff0000"/> 
    <item android:state_focused="true" 
      android:color="#0000ff"/> 
    <item android:color="#00ff00"/> 
</selector> 

Tengo este selector que estoy tratando de usar para cambiar el fondo de Linearlayout. Siempre que trato de aplicarlo, sin embargo siempre me sale este mensaje de error:Selector requiere atributo dibujable?

org.xmlpull.v1.XmlPullParserException: Línea de archivo XML binario # 4: Etiqueta requiere una etiqueta de atributo o niño dibujable 'definir un dibujable

Obviamente, quiere que use el atributo dibujable, pero no estoy seguro de cómo hacerlo y cambiar el fondo como quiero.

Respuesta

24
android:drawable="@color/red" 

y añadir esto en cada elemento con diferentes colores de fondo ....

+0

Gracias señor, mi cerebro no estaba funcionando. – Garzahd

+12

¿Alguien sabe por qué es necesario, cuando los documentos muestran que el color específico directamente debería funcionar? http://developer.android.com/guide/topics/resources/color-list-resource.html ¿Se debe a la orientación de un viejo SDK? – qix

+7

@Linus, usando 'android: color' funcionará (y debe estar incluido) si está especificando una propiedad de color (es decir, usando su selector como' android: textColor = "@ color/..." '). Si está especificando una propiedad dibujable (es decir, 'android: background =" @ ... "'), busca un atributo 'android: drawable'. – karl

Cuestiones relacionadas