2012-04-03 63 views
11
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:color="#ff0000"/> 
    <item android:state_focused="true" 
      android:color="#0000ff"/> 
    <item android:color="#00ff00"/> 
</selector> 

我有這個選擇器,我試圖用它來改變一個Linearlayout的背景。每當我嘗試應用它,但是我總是收到此錯誤信息:選擇器需要可繪製屬性?

org.xmlpull.v1.XmlPullParserException:二進制XML文件行#4:標籤需要「繪製」屬性或子標籤定義繪製

顯然,它希望我使用可繪製attibute,但我不知道如何做到這一點,並改變我想要的背景。

回答

24
android:drawable="@color/red" 

,並與不同勢顏色每一個項目添加此....

+0

謝謝主席先生,我的大腦不能正常工作。 – Garzahd 2012-04-03 17:40:08

+12

任何人都知道爲什麼這是必需的,當文檔顯示直接指定顏色應該工作? http://developer.android.com/guide/topics/resources/color-list-resource.html是否由於針對舊的SDK? – qix 2013-01-02 02:14:45

+7

@Linus,如果你指定一個顏色屬性(即,使用類似於android:textColor =「@ color/...」的選擇器),使用'android:color'將可以工作(並且必須包含)。如果你指定了一個drawable屬性(即'android:background =「@ ...」'),它會尋找一個'android:drawable'屬性。 – karl 2014-01-10 00:26:10