2010-05-07 76 views
9

我想設計一個自定義文本選擇器,當用戶單擊TextView時可以更改文本顏色。但得到了以下錯誤:android:自定義文本選擇器

了java.lang.RuntimeException:無法啓動活動ComponentInfo {}:android.view.InflateException:二進制XML文件行#55:錯誤充氣類

這裏是我有: 抽拉/ 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> 

佈局/ 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" /> 

值/ color.xml

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

回答

24

不能分配給繪製的文字顏色。它必須是一個顏色。

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

在你的資源創建一個文件夾的顏色,這個文件保存爲mycolor.xml並將其分配給文字顏色爲@色/ mycolor

+0

它是否必須是顏色文件夾?我不能把它放在values文件夾下面嗎?我試過它不符合值/ – Yang 2010-05-07 21:49:37

+1

它必須是顏色。你爲什麼要把它放在價值觀中?還要確保您的視圖從父級獲取狀態。謝謝, – 2010-05-07 22:48:04

+0

,例外不再存在。但是,當我「點擊」文本視圖時,顏色不會改變。我想知道是否有一個叫做按下的狀態?或者僅用於按鈕?當用戶點擊textivew時應指定什麼狀態? – Yang 2010-05-07 23:20:41

0

使用選擇如下:

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

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