1

我正在尝试更改按钮上的文本颜色。

我的选择器如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#000000" />
<item android:state_pressed="false" android:color="#ffffff" />

如果我在我的活动 xml 中设置 android:textColor="@drawable/buttontext" 它将完美地工作。但是如果我在我的代码中做这样的事情 button.setTextColor(R.drawable.buttontext) 它就不起作用。这不是因为按钮没有初始化,因为我已经设置了它的 onClickListener ,它工作得很好。而当做 button.setTextColor(Color.white) 时,它也可以工作。

我究竟做错了什么?

编辑:

我想出了怎么做,关键字是 ColorstateList。在代码中我这样做了:

            XmlResourceParser parser = getResources().getXml(R.drawable.buttontext);
            ColorStateList colors;
            try {
                colors = ColorStateList.createFromXml(getResources(), parser);
                buttonList.setTextColor(colors);
            } catch (XmlPullParserException e) {}
4

1 回答 1

1

setTextColor采用 ARGB int 值,而不是资源 ID。

尝试setTextColor(resources.getColor(R.yourResource))

于 2013-11-05T22:05:51.480 回答