我想将text_color_selector分配给我的textview。最初当我使用android:textColor =" @ drawable / list_selector_nav_drawer_text"时,它工作正常(未压缩文本颜色为黑色)。但是当我使用下面的代码时,未压缩的文本颜色变为紫色(类似于HTML中访问过的链接的颜色)!我做错了什么:(?
我正在使用recyclerview。
public void removeNavItemSelected(View v){
if(v!= null) {
TextView tview;
tview = (TextView) v.findViewById(R.id.title);
tview.setTextColor(R.drawable.list_selector_nav_drawer_text); // Why on this earth color becomes purple rather than black !!!
}
}
list_selector_nav_drawer_text
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/blue" >
</item>
<item android:color="@color/black" >
</item>
</selector>
答案 0 :(得分:2)
以上代码
setTextColor(R.drawable.list_selector_nav_drawer_text)
将转换为int,因此转换为内存中的随机数,它被分配,setTextColor
将其视为颜色而不是颜色状态列表。
您需要做的是将list_selector_nav_drawer_text
xml选择器放在color
资源文件夹中,并从您的活动中调用上下文实例以获取州列表。
样品:
//xml should be in the color resource folder
tview.setTextColor(context.getResources().getColor(R.color.list_selector_nav_drawer_text));