Android 如何更改TextView中文本的颜色
我在xml中定义了一个名为myText的Textview。textview有一个附带的drawable,它实际上是一个选择器 当用户单击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);
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只是传递了一个颜色资源。谢谢您的发布,但我找到了解决方案。见我上面的回答。