我的代码存在问题。我想默认选择ListFragment中的第一个元素(当Activity第一次可见时,我想要选择第一个元素)但我无法做到这一点。这是我的代码:
在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>
有任何帮助吗?谢谢
答案 0 :(得分:1)
因此,您的问题与this Question
重复ListView不会保留选定的项目,因此自定义选择器不起作用! 您必须编写自己的适配器并记住带有字段的所选项目,如答案所示。
然后只需拨打listView.setSelection(0)
中的onCreate
,即可。
我自己使用了那里的代码并且工作正常。