如何在运行时设置text_selector

时间:2012-07-10 07:51:24

标签: java android android-layout

我正在使用以下选择器

text_selector.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="@android:color/white"/>
    <item android:state_focused="true" android:color="@android:color/white"/>
    <item android:state_pressed="true" android:color="@android:color/white"/>    
    <item android:color="@android:color/black" />
</selector>

我使用以下代码在运行时设置选择器

txtMainlabel.setTextColor(R.color.text_selector);

2 个答案:

答案 0 :(得分:0)

txtMainlabel.setTextColor(R.color.text_selector);

setTextColor期望与颜色值对应的整数。你正在做的是使用整数值R.color.text_selector来归因颜色。您可以在R文件中看到该值。因此,您始终为视图设置相同的颜色。

要设置颜色,您可以执行以下操作:setTextColor(Color.white)

另外我不确定TextView是否有状态,因此我不确定您是否可以将选择器设置为TextView。如果它不是一个选项,您可以随时设置单击侦听器并为这些操作设置新颜色。

答案 1 :(得分:0)

将您的选择器放在res / drawable下并使用

label.setTextColor(getResources().getColorStateList(R.drawable.text_selector));

不要忘记在布局

中的TextView声明中设置android:clickable="true"