我在attrs.xml中有以下内容
<resources>
<!-- theme specific colors -->
<attr format="reference|color" name="foreground" />
<attr format="reference|color" name="background" />
</resources>
然后在theme.xml文件中进行如下操作
<style name="MyTheme" parent="android:Theme.Black">
<item name="android:windowNoTitle">true</item>
<item name="foreground">#0000FF</item>
<item name="background">#00FF00</item>
</style>
我还创建了一个名为forground_to_background.xml的颜色选择器。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="?background"/> <!-- pressed -->
<item android:state_focused="true" android:color="?background"/> <!-- focused -->
<item android:color="?foreground"/> <!-- default -->
</selector>
现在我想在TextView中将它们全部使用:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/forground_to_background" />
很不幸它没起作用。除了只有一种颜色-红色,我没有得到漂亮的绿蓝色。TextView始终是红色的。当我更改TextView使用"?foreground"颜色时,颜色会改变。另外,当我从"?xxxx"更改为硬编码值如"#00f"时,颜色开始工作。
问题出在哪里? 我做错了什么?
编辑: 我认为这是Can a selector resource use a color defined in a style?问题/错误的重复。
编辑2: 此外,当我尝试在ListView中使用此TextView时,应用程序会崩溃。它无法解析XML。