以下問題令我瘋狂。我已經定義的XML片段,使用此代碼:在列表視圖中啓用選擇
<fragment class="host.helperclass.ServiceListFragment"
android:id="@+id/titles"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_width="0px"/>
然後我實現ServiceListFragment
類延伸SherlockListFragment
。
我已經覆蓋了onActivityCreated
方法,使用此代碼:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
getListView().setDividerHeight(2);
getListView().setBackgroundColor(Color.parseColor("#EEEEEE"));
getListView().setCacheColorHint(Color.parseColor("#00000000"));
getListView().setSelector(R.drawable.list_selector);
哪裏list_selector.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="@drawable/green"/>
<item android:state_focused="true"
android:drawable="@drawable/green"/>
<item android:state_selected="true"
android:drawable="@drawable/green"/>
</selector>
但綠色背景的項目,當我按下只添加按鈕。當我釋放它時,綠色背景被刪除。好像state_selected
不被識別。 這可能嗎?如果是這樣,有什麼辦法可以選擇ListView
內的物品嗎?
注:
我也試圖用selctor只有一個項目:
<item android:state_focused="true"
android:drawable="@drawable/green" />
而作爲結果,我obtaint的是,當我按下ListView項的背景變成綠色,但是當我釋放它時,綠色背景被刪除。當我從物品上拔下手指時,似乎我的物品失去了焦點。
編輯:
我已經作出的又一次嘗試。
我的onListItemClick方法中添加這行代碼:
getListView().setItemChecked(index, true);
,在我的XML選擇我已經把僅此一項:
<item android:state_checked="true"
android:drawable="@drawable/green" />
但奇怪的是,這並不工作。
我不明白你的問題。當使用鍵盤/ dpad/trackball/etc選擇某個項目時,會使用'state_selected'嗎?即使ListView未被按下,您希望背景變爲綠色? –
好的......我明白了...查看我的回答 –