2011-11-17 33 views
1

我試圖在選擇它時設置列表中某個項目的顏色。即我的列表通常是灰色的,但我希望用戶選擇的項目在按下時發黃光。setSelector在使用ListActivity時會導致不希望的行爲

onCreate的方法,我試圖用getListView().setSelector(R.xml.list_pressed)

然而,這表明改變整個列表,而不是單個元素的背景顏色的古怪的行爲!我難以理解爲什麼會發生這種情況。

ListActivityTabActivity的一部分,如果這有所影響。

謝謝。

編輯:這是list_pressed.xml

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@color/darkgray" /> 
    <item 
     android:state_pressed="true" 
     android:drawable="@color/yellow" /> 
    <item 
     android:state_focused="true" 
     android:drawable="@color/darkgray" /> 
</selector> 
+1

你檢查了這個問題的答案嗎? http://stackoverflow.com/questions/2170531/change-selection-in-a-listview-from-orange-to-green –

+0

我有,他們沒有幫助。 :( – Glitch

+0

你能引用R.xml.list_pressed的內容嗎? – Graeme

回答

0

我發現了這個問題。事實證明,我已經爲xml文件中的每個項目設置了背景顏色,並且這不會被選擇器覆蓋。用drawable替換背景list_pressed解決了問題。我很驚訝,我以前沒有注意到這一點。 > _ <

1

您不必爲android:state_pressed="false"

的狀態你可以在android:state_enabled="false"犯了一個錯誤,你應該XML閱讀像這樣:

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_pressed="false" 
     android:drawable="@color/darkgray" /> 
    <item 
     android:state_pressed="true" 
     android:drawable="@color/yellow" /> 
</selector> 
相關問題