web-dev-qa-db-ja.com

TextColor(ColorstateList colors)を使用してテキストの色を設定する方法

状態が変化したときにテキストの色を変更する必要があります(押された、フォーカス)...

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
   }
));

ソリューション2

textView.setTextColor(getResources().getColorStateList(R.color.your_colors))

クリック時にTextViewの背景色を変更

49
Rodrigo

(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/color/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>
78
imbrizi

getColorStateList() を使用する必要があります

state listを使用する場合は、colorフォルダーの代わりにdrawableリソースフォルダーで宣言し、 setTextColor(getResources().getColorStateList(R.color.your_colors))

28
ffleandro

contextCompatを使用してカラー状態リストをロードすることもできます

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