您的位置:首页 > 移动开发 > Android开发

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

2016-09-01 16:31 429 查看
最近在做项目,有些按钮图片需要设置不同的状态且对应不同的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
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐