¿Puede un recurso selector utilizar un color definido en un estilo?

Estoy intentando utilizar un color definido en un stlyle en un selector pero está causando un Resources $ NotFoundException.

Primero agregué un nuevo atributo a attr.xml:

<resources> <attr name="unread_background" format="color" /> </resources> 

Entonces definí ese valor attr en styles.xml:

 <style name="ThemeNoTitleBar" parent="android:Theme.NoTitleBar"> <item name="unread_background">#000000</item> </style> 

Entonces intenté usar ese attr en mi definición del selector:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- other states snipped --> <item android:state_selected="false" android:drawable="?unread_background" /> </selector> 

Por último, la actividad utiliza el tema de estilo ThemeNoTitleBar en el manifiesto.

También he intentado crear un color en colors.xml y tenerlo usar el nuevo attr pero también falla.

Estoy obviamente perdiendo algo, pero no estoy seguro de qué hacer para solucionarlo. Mi intención es crear múltiples temas y hacer que el selector utilice el color en el tema seleccionado actualmente.

 <item android:state_selected="false" android:drawable="?unread_background" /> 

Esta sección anterior es incorrecta.

El dibujable sólo toma una referencia a un recurso extraíble. Por favor vea este enlace. http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

Botón de Android con diferentes colores de fondo Echa un vistazo al ejemplo. Parece que necesitas eso.

Aquí hay algo, que funciona por mí.

Attrs.xml:

 <attr name="color_selection" format="reference"/> 

Styles.xml, como hijo del tema principal:

 <item name="color_selection">@color/selection_background_inverse</item> 

Shape_background_selected.xml en la carpeta dibujable:

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="?attr/color_selection"/> </shape> 

Su archivo selector, en mi caso: selector_background_recyclerview:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_background_selected" android:state_activated="true" /> <item android:drawable="@drawable/shape_background_selected" android:state_pressed="true" /> <!-- pressed --> <item android:drawable="@color/transparent" /> <!-- default --> </selector> 

Finalmente, en el xml de su vista:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/selector_recyclerview_item_background"../> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.