Android:如何使用选择器作为TextView的背景?

时间:2012-11-08 21:38:16

标签: android

我希望我的TextView在按下时使用不同的颜色背景进行绘制。下面的xml包含一个Button和TextView,它们都指定一个Selector作为背景。 Button按预期工作,但TextView在按下时不会改变颜色。有没有办法使这个工作为TextView?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:text="temporary text view"
        android:layout_width="wrap_content"
        android:layout_height="100dip"
        android:background="@drawable/blackselector"
        />    
    <Button
        android:text="temporary button"
        android:layout_width="wrap_content"
        android:layout_height="100dip"
        android:background="@drawable/blackselector"
        />   
</LinearLayout>

selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <color android:color="#FF0000" />
    </item>
    <item>
        <color android:color="#00FF00" />
    </item>
</selector>

2 个答案:

答案 0 :(得分:9)

添加

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"

答案 1 :(得分:4)

以上关于将clickable设置为true的说法是正确的。此外,如果您自动添加onClickListener Android设置,可以自动点击为true。

// From the View class.
public void setOnClickListener(OnClickListener l) {
    if (!isClickable()) {
        setClickable(true);
    }
    getListenerInfo().mOnClickListener = l;
}