Sto tentando di cambiare il colore di sfondo di un TextView
widget Android quando l'utente lo tocca. Ho creato un selettore per quello scopo, che è memorizzato res/color/selector.xml
e 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' clickable
attributo di TextView
è true
, nel caso sia di interesse.
Quando assegno questo selettore a un TextView
as 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 textColor
senza problemi.
Qual è il modo corretto per applicare un selettore del colore di sfondo a un TextView
in Android?