Intereting Posts
Внутренний класс фрагмента должен быть статическим Почему мне нужно импортировать R-класс, когда я использую ресурс в пакете без root? Просмотр анимации позади другого макета Ресурсы $ NotFoundException: ресурс не является Drawable (цвет или путь)? Что такое BroadcastReceiver и когда мы его используем? IPhone-подобная панель вкладок в Android? Преобразование из GLSurfaceView в TextureView (через GLTextureView) Как я могу создать приложение Android в Android Studio, которое использует Google Maps Api v2? Изменение относительной компоновки программно Android WebView "tel:" & "mailto:" ссылки показывают, что веб-страница не найдена Приложение Android с помощью Webview / javascript. Что может быть проблемой безопасности? Дублирование фрагментов на транзакции фрагментов Android Maps v2 – анимационная камера для включения большинства маркеров Как сохранить изображение через захват в android на php? Пользовательский Linear Layout Manager добавляет пустую карту в recyclerView

Настройка цвета TextView на <селектор> программно

У меня есть следующий селектор, определенный в файле XML под res / color / redeemlist_item_color.xml :

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#FFFFFF" /> <!-- pressed --> <item android:state_selected="true" android:color="#FFFFFF" /> <!-- focused --> <item android:color="#000000" /> <!-- default --> </selector> 

У меня также есть TextView в макете элементов ListView . Когда я устанавливаю android:textColor в этом TextView для указанного выше селектора в XML, тогда цвет изменяется правильно, когда элемент выбран. Однако я пытаюсь установить этот ресурс программно следующим образом:

 holder.label.setTextColor(R.color.redeemlist_item_color); 

Когда это задано, цвет больше не изменяется. Может ли селектор быть назначен TextView таким образом?

Я думаю, вам может потребоваться добавить findViewById или что-то подобное


Изменить: приведенное выше неверно в соответствии с моим комментарием, правильный ответ

 setTextColor(getResources().getColorStateList(R.color.redeemlist_item_color)); 

Вы должны использовать getColorStateList ()

Я также боролся с этой проблемой, если вы хотите использовать state list , вам нужно объявить ее в папке с color ресурсами, а не в drawable папке, и использовать setTextColor(getResources().getColorStateList(R.color.redeemlist_item_color)) .

Можешь попробовать:

holder.label.setTextColor (. GetResources () GetColor (R.color.redeemlist_item_color));

вместо :

holder.label.setTextColor (R.color.redeemlist_item_color);

Расман прав. Вам нужно указать TextView ID, android: id = "@ + / something". Вы получаете ссылку на эту информацию, используя этот идентификатор и findViewById, а затем можете задать цвет текста.