Как установить TextColor с помощью цветов setTextColor (ColorsStateList)

Мне нужно изменить цвет текста при изменении состояния (нажатие, фокус) …

Как установить цвет текста TextView с помощью ColorsStateList?

Редактировать, решать:

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 на клике

Solutions Collecting From Web of "Как установить TextColor с помощью цветов setTextColor (ColorsStateList)"

Если вам нужно установить цвета в коде (используя 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 } 

Рез / цвет / 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);