Я пытаюсь изменить цвет фона виджета Android TextView, когда пользователь коснется его. Я создал селектор для этой цели, который хранится в res/color/selector.xml и примерно выглядит следующим образом:
<?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>
Атрибут clickable TextView - true, если это интересно.
Когда я назначаю этот селектор TextView как android:background="@color/selector", во время выполнения я получаю следующее исключение:
ERROR/AndroidRuntime (13130): вызвано: org.xmlpull.v1.XmlPullParserException: двоичная строка XML файла # 6: для тега требуется атрибут "drawable" или дочерний тег, определяющий drawable
Когда я изменяю атрибут на drawable, он работает, но результат выглядит совершенно неправильно, потому что идентификаторы кажутся интерпретированными как ссылки на изображения вместо ссылок на цвет (как предлагает "drawable" ).
Что меня смущает, так это то, что я могу установить ссылку на цвет, например. "@color/black", как атрибут фона напрямую. Это работает как ожидалось. Использование селекторов не работает.
Я также могу использовать селектор как textColor без проблем.
Каков правильный способ применения фонового цвета-селектора к TextView в Android?