2013-01-23 66 views
3

我有ListFragment上的ListView使用SimpleCursorAdapter來生成我的列表。我想強調,我的ListView選中的項目,我已經試過:ListFragment Selected Item

v.setBackgroundResource(R.color.listselect_light_blue); 
在onListItemClick

,但它的工作原理奇,它選擇兩排當我點擊的項目之一,我希望它是單一的,我還設置選擇模式

<ListView android:id="@id/android:list" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:choiceMode="singleChoice" 
      android:cacheColorHint="#00000000" 
      /> 

我試過ListSelector但是當我在一個項目單擊它並不突出,直到我滾動列表,並把它轉化突出。

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    getListView().setSelector(R.drawable.listview_selector); 

} 

和:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="false" android:drawable="@color/listselect_light_blue" /> 
</selector> 

任何幫助,將不勝感激

+0

看到http://stackoverflow.com/questions/12130266/highlight-selected-item-in-listfragment –

+0

@Rachel:我用「AYUSH」的答案,但兩排我的清單的選擇得到了滾動時!我不知道爲什麼 –

+0

嘗試替代的答案.. –

回答

5

,如果你想突出Listview選擇的項目嘗試這種方式。

這適用於我。

在使用setSelector(..)之前,首先在Listfragment中設置適配器。

setListAdapter(mAdapter); 
getListView().setSelector(R.drawable.fragment_listselector);  

fragment_listselector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 
    <item android:state_activated="true" 
      android:drawable="@drawable/list_item_active_pattern" /> 
    <item android:drawable="@drawable/list_bg_pattern" /> 
</selector> 

時onItemClick(..)被稱爲把這個代碼。

@Override 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
    { 
      getListView().setItemChecked(position, true); 
      getListView().setSelection(position); 
      getListView().setSelected(true); 

    } 
+0

我有onListItemClick ListFragment,我不能使用onItemClick,所以我嘗試你的工作,並在選擇器中我換成了你的state_activated,並在另一個透明,但它不顯示突出顯示 –

+0

最後我解決了我的問題與一個自定義適配器並在getView()函數中實現更改背景色,Ty爲您的解決方案 –

+2

僅用於幫助未來的讀者,但如果您的目標api設置爲低於11,則這不起作用。其中一個兼容性功能會干擾。 –

相關問題