Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting TextView color to a <selector> programmatically

I have the following selector defined in an XML file under 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> 

I also have a TextView in a ListView item layout. When I set android:textColor on this TextView to the above selector in XML, then the color changes correctly when the item is selected. However, I am trying to set this resource programmatically in the following way:

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

When set in this way, the color no longer changes. Can a selector be assigned to a TextView in this way?

like image 634
Neil Goodman Avatar asked Apr 12 '11 23:04

Neil Goodman


People also ask

How do I change the color of TextView?

TextView Text Color – To change the color of text in TextView, you can set the color in layout XML file using textColor attribute or change the color dynamically in Kotlin file using setTextColor() method.

How do I change the text color on my Android?

Open your device's Settings app . Text and display. Select Color correction. Turn on Use color correction.


1 Answers

I think you might need to add findViewById or something of that variety


Edit: the above is incorrect as per my comment the proper answer is

setTextColor(getResources().getColorStateList(R.color.redeemlist_item_color)); 
like image 54
Rasman Avatar answered Oct 25 '22 16:10

Rasman