2010-05-07 11 views
9

Chciałem zaprojektować dostosowany selektor tekstu, który zmieniał kolor tekstu, gdy użytkownik kliknie w TextView. Ale uzyskałem następujący błąd:android: dostosowany selektor tekstu

java.lang.RuntimeException: Nie można rozpocząć działalność ComponentInfo {}: android.view.InflateException: Linia binarny plik XML # 55: Błąd klasę pompowania

tutaj jest to, co mam: odkształcalne/text_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" 
     android:state_focused="true" 
     android:drawable="@color/black" /> 
    <item android:state_pressed="true" 
     android:drawable="@color/blue" /> 
    <item android:state_focused="true" 
     android:drawable="@color/black" /> 
</selector> 

układ/textview.xml

<TextView android:id = "@+id/last_page_button" 
    android:text="@string/last_page_button_string" 
    android:gravity="center_horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#ffffff" 
    android:textColor = "@drawable/text_selector" 
    android:layout_weight="1" /> 

wartości/color.xml

<resources> 
    <color name="white">#ffffffff</color> 
    <color name="black">#ff000000</color> 
    <color name="blue">#ffccddff</color> 

Odpowiedz

24

Nie można przypisać rozciągliwej do textColor. To musi być kolor.

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

     android:color="@color/color1" /> 
    <item 
     android:color="@color/color2" /> 
</selector> 

utworzyć kolor folderu w OZE, zapisz plik jako mycolor.xml i przypisać ją do textColor jak @ koloru/MyColor

+0

Czy musi to być folder kolorów? Czy nie mogę umieścić go w folderze wartości? Próbowałem, aby nie działało pod wartościami/ – Yang

+1

musi to być kolor. Dlaczego umieściłbyś to w wartościach? Upewnij się także, że twój widok odbiera stan od rodzica. –

+0

dzięki, wyjątek już nie istnieje. Jednak po kliknięciu w tekst, kolor się nie zmienia. Zastanawiam się, czy istnieje stan zwany wciśnięty? Czy to tylko dla przycisku? Jaki stan powinienem podać, gdy użytkownik kliknął tekstowy? – Yang

0

selektor stosować w następujący sposób:

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

    android:color="@color/c1" /> 
<item 
    android:color="@color/c2" /> 

Powiązane problemy