在layout / main.xml主布局文件中的TextView中设置textColor不引用colors.xml文件。 (它想要#RRGGBB而不是@ color / text_color)

我正在为我正在编写的程序设置一些通用的颜色。 我创build了一个colors.xml文件,并试图直接引用layout.xml文件中的颜色。 我相信我正在做这个正确的,但它给了我以下错误:

Color value '@colors/text_color' must start with # 

这是我的res / values / colors.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="background_color">#888888</color> <color name="text_color">#00FFFF</color> </resources> 

这是我的res / layout / main.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:layout_width="fill_parent" android:text="@string/hello" android:layout_height="wrap_content" android:id="@+id/TextView01" android:textColor="@colors/text_color"/> </LinearLayout> 

我看了一下在android开发人员网站上的一些引用: 更多的资源types:颜色和发现这个代码:

示例:保存在res / values / colors.xml中的XML文件:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources> 

这个应用程序代码检索颜色资源:

 Resources res = getResources(); int color = res.getColor(R.color.opaque_red); 

此布局XML将颜色应用于属性:

 <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/> 

我认为我的两个XML文件遵循这个例子非常接近 – 但唯一的区别是,我没有使用任何应用程序代码来检索颜色资源。 我不认为这是必要的(但这是一个区别)。我想我会看看是否有其他人有类似的问题或解决scheme? 或者这是一个错误?

我上周更新了所有的android sdk(和Eclipse插件)文件,所以我相信它们是最新的。

在对这种情况进行实验之后: android:textColor="@colors/text_color"是错误的,因为@color不依赖于文件名。 你可以命名你的资源文件foobar.xml,没关系,但如果你已经定义了一些颜色,你可以使用@color/some_color来访问它们。

更新—-从你的链接:

文件位置:res / values / colors.xml文件名是任意的。 该元素的名称将被用作资源ID。

仅使用标准颜色代码的变体:

 android:textColor="#ff0000" 

你在你的xml中有一个错字; 它应该是:

 android:textColor="@color/text_color" 

这是“@color”,没有“s”。

你应该在xml中写入textcolor

 android:textColor="@color/text_color" 

要么

 android:textColor="#FFFFFF"