Android:ListView选择项目并以编程方式突出显示所选项目

时间:2014-04-18 06:44:24

标签: android listview

我想默认选择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进行开发

0 个答案:

没有答案