2010-09-30 7 views
28

Lorsque mon ListViewItem est en surbrillance, le texte doit devenir blanc. Comment puis-je le définir?Comment définir ColorStateList pour TextView?

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:color="@color/testcolor1"/> 
    <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" /> 
    <item android:state_enabled="false" android:color="@color/testcolor3" /> 
    <item android:color="@color/testcolor5"/> 
</selector> 
+0

Que contient l'extrait de code? –

+0

Je ne suis pas sûr de comprendre ce que vous voulez dire? –

+0

Pourquoi avez-vous posté le code? Qu'est-ce que ça montre? (comment utilisez-vous le drawable?) –

Répondre

62

Créer résolution de fichier/drawable/text_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" /> 
    <item android:state_focused="true" android:state_pressed="true" android:color="#ffffff" /> 
    <item android:state_focused="false" android:state_pressed="true" android:color="#ffffff" /> 
    <item android:color="#000000" /> 
</selector> 

Ensuite, utilisez @drawable/text_color de xml (ou R.drawable.text_color à partir du code) que la couleur de texte pour vos articles de liste.

+0

Merci! Pouvez-vous me montrer un exemple de ce à quoi pourrait ressembler un @ drawable/text_color? –

+1

Un peu comme android: textColor = "@ drawable/text_color" sur un TextView. –

+41

qui devrait aller dans res/color – njzk2

0

En plus de ce que d'autres ont indiqué ci-dessus, je voudrais souligner un point, tiré de l'URL ci-dessous.

https://developer.android.com/reference/android/content/res/ColorStateList.html

Note: La liste des spécifications de l'Etat sera en correspondance avec dans l'ordre où ils apparaissent dans le fichier XML. Pour cette raison, les éléments plus spécifiques doivent être placés plus tôt dans le fichier. Un élément sans spécification d'état est considéré comme correspondant à n'importe quel ensemble d'états et est généralement utile en tant qu'élément final à utiliser par défaut.

Il est important que vous ayez la condition la plus large vers le bas dans l'étiquette du sélecteur. J'espère que cela t'aides!

Questions connexes