2012-11-08 12 views
8

Ich möchte, dass meine TextView mit einem anderen farbigen Hintergrund gezeichnet wird, wenn sie gedrückt wird. Das untere XML enthält einen Button und eine TextView, die beide einen Selector als Hintergrund angeben. Die Schaltfläche funktioniert wie erwartet, aber die Textansicht ändert die Farbe nicht, wenn sie gedrückt wird. Gibt es eine Möglichkeit, dies für das TextView funktionieren zu lassen?Android: Wie Selektor für den Hintergrund eines TextView verwenden?

<?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> 

Antwort

21

zu Ihrem Textview Stellen Sie dies:

android:clickable="true" 
+1

Interessant, wie meine Antwort früher bekannt gegeben wurde, aber nicht akzeptiert wurde. Hmm. –

+0

@PaulBurke Ja, ich frage mich auch. Aber zu meiner Verteidigung habe ich nicht gesehen, dass es zu der Zeit, als ich meine veröffentlichte, eine andere Antwort gab. Ich nehme an, ab11 habe nicht bemerkt, welche Antwort früher gepostet wurde. Aber ich habe deine belohnt. – Ahmad

+2

Keine Sorge. Offensichtlich nicht deine Schuld (eigentlich wollte ich die Frage kommentieren). Danke für die Verbesserung! :-) –

9

hinzufügen

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

die oben über die Einstellung anklickbar wahr ist richtig. Wenn Sie außerdem einen onClickListener hinzufügen, können Android-Geräte automatisch auf true für Sie klicken.

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