我有一个 ListView 和 listselector.xml。最初我使用 setSeletion(position) 设置项目。但是使用此代码,该项目不会突出显示。只有当我点击一个项目时它才会突出显示。
ArrayAdapter<String> ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems);
timeListView = (ListView) findViewById(R.id.listList);
timeListView.setAdapter(ad);
timeListView.setOnItemClickListener(this);
timeListView.setSelector(R.drawable.listselector);
timeListView.setSelection(toSelectPos);
=============================
XML
<ListView android:id="@+id/listList" android:layout_width="match_parent" android:layout_height="wrap_content" android:dividerHeight="1dp" >
listselector.xml 代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- listselector.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected -->
<item android:state_focused="true" android:state_selected="false"
android:drawable="@drawable/focused"/>
<!-- Pressed -->
<item android:state_selected="true" android:state_focused="false"
android:drawable="@drawable/selected" />
</selector>
上面的代码突出显示了完整的列表视图,我只想突出显示(更改背景颜色)项目。为此,我相信我将不得不为该项目创建另一个 xml 并为该项目设置选择器属性,而不是如上所述的列表。如果我错了,请纠正我。
关键是,无论如何,只有单击和 setSelection 上的选定项目应该更改。使用上面的代码,它不会改变 setSelection,如何实现。
我查看了其他 Q,但找不到我正在寻找的点,所以请不要将其标记为其他 Q 的重复项。
谢谢