状態が変化したときにテキストの色を変更する必要があります(押された、フォーカス)...
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))
(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>
getColorStateList() を使用する必要があります
state list
を使用する場合は、color
フォルダーの代わりにdrawable
リソースフォルダーで宣言し、 setTextColor(getResources().getColorStateList(R.color.your_colors))
。
contextCompatを使用してカラー状態リストをロードすることもできます
ColorStateList colors = ContextCompat.getColorStateList(this,R.color.my_color_list);