Я пытаюсь изменить цвет фона виджета 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?