Android 如何更改TextView中文本的颜色

Android 如何更改TextView中文本的颜色,android,android-layout,textview,Android,Android Layout,Textview,我在xml中定义了一个名为myText的Textview。textview有一个附带的drawable,它实际上是一个选择器 当用户单击TextView时,我不仅要更改可绘制的文本,还要更改文本的颜色。我的变更代码如下。问题是,只有可拉伸的部分正在改变。文本没有改变。如何修复此代码以使文本颜色也发生变化 内部活动 if (R.color.my_red == myText.getCurrentTextColor()) { myText.setSelected(true);

我在xml中定义了一个名为myText的Textview。textview有一个附带的drawable,它实际上是一个选择器

当用户单击TextView时,我不仅要更改可绘制的文本,还要更改文本的颜色。我的变更代码如下。问题是,只有可拉伸的部分正在改变。文本没有改变。如何修复此代码以使文本颜色也发生变化

内部活动

if (R.color.my_red == myText.getCurrentTextColor()) {
        myText.setSelected(true);
        myText.setTextColor(getResources().getColor(R.color.my_blue));
    } else {
        myText.setSelected(false);
        myText.setTextColor(getResources().getColor(R.color.my_red));
    }
选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/im_red" android:state_pressed="true"/>
    <item android:drawable="@drawable/im_blue"/>

</selector>


您可以使用
Color
类,例如:
Color.RED
。或者如果您有HTML样式的颜色,您甚至可以使用:
.setTextColor(color.parseColor(“#FFFFFF”)

我发现了问题。我在比较苹果和桔子。修复方法是将
getResources().getColor
添加到if子句中

if (getResources().getColor(R.color.my_red) == myText.getCurrentTextColor()) {
        myText.setSelected(true);
        myText.setTextColor(getResources().getColor(R.color.my_blue));
    } else {
        myText.setSelected(false);
        myText.setTextColor(getResources().getColor(R.color.my_red));
    }

这与用户3093402已经在做的基本相同。user3093402只是传递了一个颜色资源。谢谢您的发布,但我找到了解决方案。见我上面的回答。