Android 获取颜色资源作为字符串

Android 获取颜色资源作为字符串,android,android-xml,android-resources,Android,Android Xml,Android Resources,我正在尝试对颜色资源使用Color.parseColor(): <color name="redish">#FF0000</color> 如何正确地将颜色资源转换为字符串? 试试这个,我想你错过了 context.getResources().getColor(R.color.redish)); 我得到了一个存储在对象中的颜色(包含其他字段)。颜色也在xml文件(colors.xml)中定义 所以我想设置textview的背景色。我是这样做的: ... Str

我正在尝试对颜色资源使用
Color.parseColor()

<color name="redish">#FF0000</color>
如何正确地将颜色资源转换为
字符串?


试试这个,我想你错过了

context.getResources().getColor(R.color.redish));

我得到了一个存储在对象中的颜色(包含其他字段)。颜色也在xml文件(colors.xml)中定义
所以我想设置textview的背景色。我是这样做的:

...    
String color= res.colorName; // res is an object
int c = context.getResources().getIdentifier(color,"color", context.getPackageName());
textView.setBackgroundColor(Color.parseColor("#" + Integer.toHexString(context.getResources().getColor(c))));
如果您在活动中使用代码,则可以省略“上下文”的使用。

更新的答案:

String colorHex = "#" + Integer.toHexString(ContextCompat.getColor(context, R.color.colorPrimary) & 0x00ffffff);

context
需要在那里。。。它在一个适配器中。您存储颜色xml的地方?
Integer.tohextString(ContextCompat.getColor(context,R.color.redish)
在最新版本中,这对我有效。getColor我不赞成……还有另一种方法:当接受的答案不适用时,这对我有效。谢谢!接受的答案对我无效,但这一个对我有效!太好了!
Color.parseColor("#"+Integer.toHexString(ContextCompat.getColor(context, R.color.redish)))
...    
String color= res.colorName; // res is an object
int c = context.getResources().getIdentifier(color,"color", context.getPackageName());
textView.setBackgroundColor(Color.parseColor("#" + Integer.toHexString(context.getResources().getColor(c))));
String colorHex = "#" + Integer.toHexString(ContextCompat.getColor(context, R.color.colorPrimary) & 0x00ffffff);