Sto tentando di cambiare il colore di sfondo di un TextViewwidget Android quando l'utente lo tocca. Ho creato un selettore per quello scopo, che è memorizzato res/color/selector.xmle più o meno simile a questo:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/semitransparent_white"
/>
<item
android:color="@color/transparent"
/>
</selector>
L' clickableattributo di TextViewè true, nel caso sia di interesse.
Quando assegno questo selettore a un TextViewas android:background="@color/selector", ottengo la seguente eccezione in fase di esecuzione:
ERRORE / AndroidRuntime (13130): causato da: org.xmlpull.v1.XmlPullParserException: riga di file XML binario n. 6: il tag richiede un attributo 'drawable' o un tag figlio che definisce un drawable
Quando cambio l'attributo in drawable, funziona, ma il risultato sembra completamente sbagliato perché gli ID sembrano essere interpretati come riferimenti di immagine invece che come riferimenti di colore (come suggerisce il "drawable").
Ciò che mi confonde è che posso impostare un riferimento di colore, ad esempio "@ color / black", come attributo di sfondo direttamente. Funziona come previsto. L'uso dei selettori non funziona.
Posso anche usare il selettore come il textColorsenza problemi.
Qual è il modo corretto per applicare un selettore del colore di sfondo a un TextViewin Android?