如何使用setTextColor(ColorsStateList颜色)设置TextColor

我需要改变状态改变时的文本颜色(按下,焦点)…

如何使用ColorsStateList设置TextView的文本颜色?

编辑,解决:

textView.setTextColor (new ColorStateList ( new int [] [] { new int [] {android.R.attr.state_pressed}, new int [] {android.R.attr.state_focused}, new int [] {} }, new int [] { Color.rgb (255, 128, 192), Color.rgb (100, 200, 192), Color.White } )); 

单击时更改TextView的背景颜色

如果您需要在代码中设置颜色(使用ColorStateList),但仍然希望将颜色状态保留在XML中,则可能需要使用以下代码:

 try { XmlResourceParser parser = getResources().getXml(R.color.your_colors); ColorStateList colors = ColorStateList.createFromXml(getResources(), parser); mText.setTextColor(colors); } catch (Exception e) { // handle exceptions } 

RES /颜色/ your_colors.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="#222222"/> <item android:state_selected="true" android:color="#222222"/> <item android:state_focused="true" android:color="#222222"/> <item android:color="#0000ff"/> </selector> 

你必须使用getColorStateList()

我也在努力解决这个问题,如果你想使用state list ,你需要在color资源文件夹中声明它,而不是drawable文件夹,并使用setTextColor(getResources().getColorStateList(R.color.your_colors))

你也可以使用ContextCompat来加载一个颜色状态列表

 ColorStateList colors = ContextCompat.getColorStateList(this,R.color.my_color_list);