我想设计一个自定义的文本选择器,当用户单击 TextView 时它会更改文本颜色。但是出现以下错误:
java.lang.RuntimeException: 无法启动 Activity ComponentInfo{}: android.view.InflateException: Binary XML file line #55: Error inflating class
这是我所拥有的: 可绘制/text_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:state_focused="true"
android:drawable="@color/black" />
<item android:state_pressed="true"
android:drawable="@color/blue" />
<item android:state_focused="true"
android:drawable="@color/black" />
</selector>
布局/textview.xml
<TextView android:id = "@+id/last_page_button"
android:text="@string/last_page_button_string"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:textColor = "@drawable/text_selector"
android:layout_weight="1" />
值/color.xml
<resources>
<color name="white">#ffffffff</color>
<color name="black">#ff000000</color>
<color name="blue">#ffccddff</color>
最佳答案
您不能将 drawable 分配给 textColor。它必须是一种颜色。
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:color="@color/color1" />
<item
android:color="@color/color2" />
</selector>
在你的 res 中创建一个文件夹 color ,将这个文件保存为 mycolor.xml 并将它分配给 textColor as @color/mycolor
关于android:自定义文本选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791679/