Je tente de changer la couleur de fond d'un Android TextView
lorsque l'utilisateur le touche. J'ai créé un sélecteur à cet effet, qui est stocké dans le fichier res/color/selector.xml
et ressemble à peu près à ça :
<?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>
Le site clickable
de l'attribut TextView
est true
au cas où cela vous intéresserait.
Lorsque j'affecte ce sélecteur à un TextView
comme android:background="@color/selector"
J'obtiens l'exception suivante au moment de l'exécution :
ERROR/AndroidRuntime(13130) : Causé par : org.xmlpull.v1.XmlPullParserException : Fichier XML binaire ligne n°6 : la balise nécessite un attribut 'drawable' ou une balise enfant définissant un drawable.
Lorsque je change l'attribut en drawable, cela fonctionne, mais le résultat est complètement faux car les ID semblent être interprétés comme des références d'image au lieu de références de couleur (comme le suggère le "drawable").
Ce qui me perturbe, c'est que je peux définir directement une référence de couleur, par exemple "@color/black", comme attribut d'arrière-plan. Cela fonctionne comme prévu. L'utilisation de sélecteurs ne fonctionne pas.
Je peux également utiliser le sélecteur comme textColor
sans problème.
Quelle est la manière correcte d'appliquer un sélecteur de couleur d'arrière-plan à un fichier de type TextView
dans Android ?