In XML, we can set a text color by the
textColor attribute, like
android:textColor="#FF0000". But how do I change it by coding?
I tried something like:
holder is just a class and
text is of type
TextView. Red is an RGB value (#FF0000) set in strings.
But it shows a different color rather than red. What kind of parameter can we pass in setTextColor()? In documentation, it says
int, but is it a resource reference value or anything else?
You should use:
For a sanity check, I just tried it, because I had a project open anyway, and yes, it's nice and red ;D
You can use various functions from the
Color class to get the same effect of course.
Color.parseColor (Manual) (like LEX uses)
And of course, if you want to define your color in an
XML file, you can do this:
getColor() function is deprecated1, you need to use it like so:
You can also insert plain HEX, like so:
Where you have an alpha-channel first, then the color value.
Check out the complete manual of course, public class Color extends Object.
1This code used to be in here as well:
This method is now deprecated in Android M. You can however use it from the contextCompat in the support library, as the example now shows.
If you still want to specify your colors in your XML file:
Then reference it in your code with one of these two methods:
The first is probably preferable if you're compiling against Android M, however the theme you pass in can be null, so maybe that's easier for you?
And if you're using the Compat library you can do something like this