今天在寫一個(gè)布局的時(shí)候沪饺,發(fā)現(xiàn)設(shè)置某一個(gè)TextView的選中字色,不起作用:
起初是這么寫的:
// 設(shè)置字色闷愤,選中與非選中
textView.setTextColor(getResources().getColor(R.color.text_judge_color));
其中R.color.text_judge_color的布局是這么寫的:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#3ebfe9" android:state_pressed="true" />
<item android:color="#3ebfe9" android:state_selected="true" />
<item android:color="@color/text_color" /> <!-- not selected -->
</selector>
效果如下:
我們需要選中時(shí)文字顏色也隨即顯示藍(lán)色整葡,顯然是不對(duì)的。
后來發(fā)現(xiàn)讥脐,這么設(shè)置是不行的遭居,要使用getColorStateList來設(shè)置顏色。
代碼如下:
ColorStateList csl = getResources().getColorStateList(R.color.text_judge_color);
textView.setTextColor(csl);
運(yùn)行效果如下:
這樣才是正確的旬渠。