我想默认选择ListView中的项目(创建视图时)。我想用语法来做。我尝试了Question的答案,但它对我不起作用。
我有以下内容......
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arrayList = new ArrayList<String>();
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
arrayList.add("4");
arrayList.add("5");
arrayList.add("6");
arrayList.add("7");
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//listView.setSelection(3);
listView.setItemChecked(3, true);
}
activity_main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:listSelector="@drawable/list_item_selector"
android:drawSelectorOnTop="true" />
</LinearLayout>
list_item_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_activated="true"
android:state_pressed="true"
android:state_selected="true"
android:drawable="@color/red" />
<item
android:state_activated="false"
android:state_pressed="false"
android:state_selected="false"
android:drawable="@color/black" />
</selector>
我在.java
中尝试了以下方法的许多组合listView.setSelection(i);
listView.setItemChecked(i, true);
lv_stakeoutPoints.performClick();
listViewAdapter.notifyDataSetChanged();
但是没有一个组合正常工作。 有人解决了这个问题吗?
(顺便说一下,为什么要这么做这么难?)
仅供参考,我正在使用Android 4.1.2进行开发