9

TextViewを押すと、異なる色の背景でペイントしたいのですが。以下のxmlには、ButtonとTextViewが含まれており、どちらも背景としてセレクターを指定しています。ボタンは期待どおりに機能しますが、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>

セレクター.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>
4

3 に答える 3

23

これをTextViewに設定します。

android:clickable="true"
于 2012-11-08T22:04:44.670 に答える
9

追加

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
于 2012-11-08T22:01:43.453 に答える
4

クリック可能をtrueに設定することに関する上記は正しいです。さらに、onClickListenerを追加すると、Androidはクリック可能を自動的にtrueに設定します。

// From the View class.
public void setOnClickListener(OnClickListener l) {
    if (!isClickable()) {
        setClickable(true);
    }
    getListenerInfo().mOnClickListener = l;
}
于 2012-11-08T22:08:07.957 に答える