将Drawable设置为文本颜色会引发异常“颜色值必须以#开头”

时间:2014-02-23 17:18:03

标签: android android-layout exception drawable

layout我使用button,我将其textColor设置为可绘制的内容,如下所示:

@ drawble / text_color_drawable:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- disabled state -->
    <item android:state_enabled="false" android:color="@color/disabled_text_color" /> 
    <item android:color="@color/main_text_color"/>
</selector>

@ color / main_text_color:

<color name="main_text_color">#9797A3</color>

但是当我使用名为drawable的{​​{1}}作为text_color_drawable时: textColor
我得到一个例外:android:textColor="@drawable/text_color_drawable"

我做错了吗?

谢谢

2 个答案:

答案 0 :(得分:4)

问题可能是@drawble/text_color_drawable:它不应该是'可绘制的',而是一个
'颜色'。基本上你现在拥有的是StateListDrawable,但你真正想要的是ColorStateList。两者都非常相似,但生活在资源的不同位置。

话虽如此,请尝试将文件从res/drawable移至res/color。然后,当您将资源指定为文本颜色时,应该说:android:textColor="@color/text_color_drawable"

答案 1 :(得分:4)

在我的情况下,刷新按钮有帮助。它被放置在设计视图上方的小工具栏中,靠近放大镜(带有1:1,+, - 等图标)。