Intereting Posts
Почему мой фрагмент onCreate вызывается широко, когда я просматриваю свои приложения viewPager? Кордова InAppBrowser и общий cookie с webview Android: Как вы получаете доступ к строковому массиву из strings.xml в пользовательском классе? Ошибка потока Java-сообщений. Запуск IllegalThreadState уже запущен Общие сведения о переходах общих элементов exit / reenter Обновление ошибки Eclipse SDK Сжатие изображения камеры перед загрузкой Как создать пользовательский растровый маркер с API карты Android v2 Интеграция с Android и Paypal API Android – Использование пользовательского шрифта Как исправить белый экран в приложении Запуск? Как изменить программные переменные xml-значений в Android? Android – Когда регистрировать / отменить регистрацию широковещательных ресиверов, созданных в виде активности? Как правильно скрыть и отобразить панель действий с помощью API новой библиотеки дизайна? Android @Intdef для флагов, как использовать его

Селектор цвета Android не работает с настраиваемыми атрибутами

У меня есть 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» начинает работать.

Где проблема? Что я делаю не так?

Изменить: Я считаю, что это дубликат проблемы / ошибки. Может ли ресурс селектора использовать цвет, определенный в стиле?

Edit2: Более того, когда я пытаюсь использовать это приложение TextView в приложении ListView, он падает. Он не может анализировать XML.

Solutions Collecting From Web of "Селектор цвета Android не работает с настраиваемыми атрибутами"

Вы не можете ссылаться? Attr / при выборе цветов для селектора. Что вы можете сделать, если вы хотите, чтобы цвета в каждой теме были выбраны, создайте несколько селекторов, которые ссылаются на @ color / и @ drawable /, а затем имеют «ссылку» attr, которая связывает один из селекторов с заданным стилем.

<attr name="forground_to_background" format="reference" />

Затем вам необходимо установить цвет текста как

 android:textColor="?attr/forground_to_background" 

Я считаю, что текст всегда был красным, потому что Android интерпретировал целочисленное значение attr как цвет (красный), вместо того, чтобы использовать его как поиск того, что вы на самом деле хотели.

Причина этого в том, что у меня разные Контекст. Пока раздувание Контекст знает о моей теме attrs, но к адаптеру ListView я передал ApplicationContext, который не знал об этих attrs. Теперь я не знаю, почему он не знает о них;)

Вы уверены, что применяете MyTheme к активности или текстовому виду? Другая вещь, которую вы можете попробовать, заключается в том, что вместо использования «?» Оператора в вашем forground_to_background.xml, вместо этого попробуйте использовать «@». Посмотрите, исправляет ли это вашу проблему