我想要在用户触摸 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>
TextView
的 clickable
属性为 true
,如果这个对你有用的话。
当我把这个选择器作为 android:background="@color/selector"
分配给一个 TextView
时,在运行时会出现以下异常:
ERROR/AndroidRuntime(13130): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #6: tag requires a 'drawable' attribute or child tag defining a drawable
当我将属性更改为 "drawable" 时,它可以工作,但是结果完全错误,因为ID似乎被解释为图像引用而不是颜色引用(如“drawable”所建议的那样)。
让我感到困惑的是,我可以直接将颜色引用,例如 "@color/black",作为背景属性设置,这个也按预期工作。但使用选择器却不行。
我也可以在没有问题的情况下将选择器用作 textColor
。
在 Android 中,将背景颜色选择器应用于 TextView
的正确方法是什么?