У меня есть 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 на использование цвета "?", Цвет изменится. Также, когда я меняю цвета, выбирается селектор от "? Xxxx" до жестко заданного значения, так как цвет "# 00f" начинает работать.
Где проблема? Что я делаю неправильно?
Edit: Я считаю, что это дубликат проблемы/ошибки Может ли ресурс селектора использовать цвет, определенный в стиле?
Edit2: Более того, когда я пытаюсь использовать это приложение TextView в приложении ListView, он падает. Он не может анализировать XML.