Selector auf Hintergrundfarbe von TextView

Ich versuche die Hintergrundfarbe eines Android zu ändernTextView Widget, wenn der Benutzer es berührt. Ich habe zu diesem Zweck einen Selektor erstellt, der in @ gespeichert isres/color/selector.xml und sieht ungefähr so aus:

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

Dasclickable Attribut desTextView isttrue, falls das von Interesse ist.

Wenn ich diesen Selektor einem @ zuordTextView wieandroid:background="@color/selector", Ich erhalte zur Laufzeit die folgende Ausnahme:

ERROR / AndroidRuntime (13130): Auslöser: org.xmlpull.v1.XmlPullParserException: Zeile 6 der binären XML-Datei: Für das Tag ist ein Attribut 'drawable' oder ein untergeordnetes Tag erforderlich, das ein drawable @ definier

Wenn ich das Attribut in "Zeichenbar" ändere, funktioniert es, aber das Ergebnis sieht völlig falsch aus, da die IDs als Bildreferenzen anstelle von Farbreferenzen interpretiert werden (wie in "Zeichenbar" angegeben).

Was mich verwirrt, ist, dass ich eine Farbreferenz einstellen kann, z. "@ color / black", direkt als Hintergrundattribut. Dies funktioniert wie erwartet. Die Verwendung von Selektoren funktioniert nicht.

Ich kann auch den Selektor als @ verwendtextColor ohne Probleme

Was ist der richtige Weg, um einen Hintergrundfarbwähler auf ein @ anzuwendeTextView in Android?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage