android中selector在java代码中使用无效的解决方案

最近在做项目,有些按钮图片需要设置不同的状态且对应不同的icon。在此过程中遇到了一些问题。

~在用到TextView时,要设置它的文字颜色和drawableleft图片在不同的status下的情况,此时用到selector。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="#d6d6d6"></item>
<item android:state_enabled="true" android:color="@color/color_blue_618dbe"></item>
</selector>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_addnewgrop_unenable" android:state_enabled="false" />
<item android:drawable="@drawable/icon_addnewgroup" />
</selector>
以上是字体颜色和对应状态的图片selector。在使用的时候,放在xml中
android:textColor=“@drawable/sssss”
android:  drawableleft=“@drawable/sssss”
在java类里面用setEnable()方法来直接控制对应的状态显示。
遇到的问题:
在java给textview的文字设置selector时无效具体代码是:
tv.setTextColor(getResource().getColor(R.color.selector));
使用这行代码后在用setEnable来改变状态后显示无效。
后来查找了原因,在xml中使用selector,系统会自动转换成colorstatelist.而在java代码中需要使用
 
  
tv.setTextColor(getResources().getColorStateList(R.color.selector_color_ffffff_d6d6d6));然后问题解决bingo

猜你喜欢

转载自blog.csdn.net/u012409455/article/details/51540730
今日推荐