2014-12-05 126 views
0

我的代碼存在問題。我想在默認情況下選擇ListFragment中的第一個元素(當Activity第一次可見時,我希望第一個元素被選中),但我無法做到這一點。這是我的代碼:默認情況下,在ListFragment中選擇一個項目

在ListFragment(onActivityCreated):

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
       R.layout.fragment_selector, ActivityMain2.mTitleArray); 
setListAdapter(adapter); 
ListView listView = getListView(); 
listView.setSelector(R.drawable.fragment_listselector);  
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
listView.setItemChecked(1, true); 
listView.setSelection(1); 
listView.setSelected(true); 
adapter.notifyDataSetChanged(); 

佈局/ fragment_selector:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="5dp" 
    android:textSize="32sp" > 

</TextView> 

繪製/ fragment_listselector:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@color/default_color" android:state_selected="false"/> 
    <item android:drawable="@color/pressed_color" android:state_selected="true"/> 

</selector> 

任何幫助嗎?謝謝

+1

你想「保持選定」,用背景色顯示嗎? – Altoyyr 2014-12-05 10:12:42

+0

是的,就是這樣。我想背景顏色指示選擇 – 2014-12-05 10:19:32

+0

可能的重複[Android - 保持ListView的項目突出顯示,一旦被點擊](http://stackoverflow.com/questions/9281000/android-keep-listviews-item-highlighted-once-已被點擊) – Altoyyr 2014-12-05 10:21:14

回答

1

所以你的問題是this Question

的ListView重複不保留選定的項目,所以自定義選擇不工作! 答案指出,您必須編寫自己的適配器並用字段記住所選項目。

然後只需撥打listView.setSelection(0)onCreate,你很好。

我已經使用自己的代碼,它工作正常。

+0

但是,當您第一次打開活動時,是否有任何項目被選中? – 2014-12-05 10:25:59

+0

不,你可以實現你的適配器,它顯示你的第一個項目被選中;或者只是調用'listView.setSelection(0)' – Altoyyr 2014-12-05 10:27:06

+0

好的,謝謝。我打算編碼 – 2014-12-05 10:28:16

相關問題