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

时间:2014-01-16 19:35:40

标签: android android-layout textview

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

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

内部活动

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>

2 个答案:

答案 0 :(得分:1)

我发现了问题。我在比较苹果和橘子。修复是将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));
    }

答案 1 :(得分:0)

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