找到了答案。 我的問題不是選擇器的狀態,我希望選擇器處於所有項目的相同狀態! 問題是,如果布爾值爲true,如果適配器中的某些布爾值爲false,並且顏色爲X,但是即使顏色爲X,我仍然希望它在選定或按下後是透明的。
因此,解決辦法是下面的XML:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@android:color/transparent" /> <!-- pressed -->
<item android:state_selected="true"
android:drawable="@android:color/transparent" /> <!-- focused -->
<item android:drawable="@color/viewed_hotels_color" /> <!-- default -->
</selector>
我發現了,即使列表本身是獲取國家之一,它傳遞給它的孩子的狀態(即列表項)我認爲它沒有做。 只有android:重點不會在這裏生效,android列表項不會被聚焦,但會被選中...所以您可以在任何未按下或選擇的狀態下看到我給出我的默認顏色,否則它是透明的,並且選擇器對於所有。
在我的適配器我需要將下面的代碼(在getView()方法):
View itemView = convertedView; <- i'll spare you the layout details...
Item item = getItem(position);
if(item.isViewed()){
itemView.setBackgroundResource(R.drawable.viewed_item_background);
}else{
itemView.setBackgroundDrawable(null);
}
這樣可以確保每一個項目都會得到正確的背景。當然,如果項目狀態更改爲查看,我希望它顯示我需要調用適配器上的notifyDatasetCahnged()。
好的我發現問題不在選擇器中。 我想要的是一個列表,其中包含兩種不同顏色的項目,例如gmail應用已閱讀\未讀項目。再次的問題是,一旦我設置了某個項目的背景,選擇器不再可見。任何想法如何改變項目的選擇或新聞事件的APLHA水平? – codeScriber 2011-01-19 09:07:09