Selektor auf Hintergrundfarbe von TextView

Ich versuche, ändern Sie die Hintergrundfarbe von einem Android - TextView widget, wenn der Benutzer Sie berührt. Ich habe eine Wahlschalter für diesen Zweck, die gespeichert ist in res/color/selector.xml und in etwa so aussieht:

<?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>

Den clickable Attribut des TextView ist trueim Fall ist von Interesse.

Wenn ich weisen Sie diesen Selektor, um eine TextView als android:background="@color/selector" ich bin immer folgende exception zur Laufzeit:

ERROR/AndroidRuntime(13130): Verursacht durch: org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: tag erfordert ein "drawable" - Attribut oder ein untergeordnetes tag definieren ein drawable

Wenn ich das Attribut auf drawable, es funktioniert, aber das Ergebnis ist auf der Suche völlig falsch, weil die IDs angezeigt werden interpretiert als Bild-Referenzen die Farbe, sondern auch Referenzen (wie die "drawable" andeutet).

Was mich verwirrt ist, dass ich eine Farbe-Bezug, z.B. "@color/black", wie das background-Attribut direkt. Dies funktioniert wie erwartet. Mithilfe von Selektoren funktioniert nicht.

Ich kann auch mit der Auswahl als die textColor ohne Probleme.

Was ist die richtige Methode anwenden, eine hintergrund-Farbe-Selektor, um eine TextView in Android?

InformationsquelleAutor der Frage digitalbreed | 2010-08-28

Schreibe einen Kommentar