我用它来突出显示列表视图的当前所选元素:
list.setItemChecked(pos,list.getCheckedItemPositions().get(pos));
当我将该代码放入onItemClickListener时,它可以工作,但是当我将它放入onItemLongClickListener时,它不起作用,因为list.getCheckedItemPositions()返回一个空数组。
在我的xml中我定义了listview:
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="248dp"
android:choiceMode="singleChoice"
android:longClickable="true" >
</ListView>
并且我使用自定义drawable(选择器)作为项目布局的背景,因此当我正常点击某个项目时,背景会变为“激活”状态,但是当我进行长按时它不起作用。
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long id) {
list.setItemChecked(pos,list.getCheckedItemPositions().get(pos));
});
list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View v, final int pos, long id) {
list.setItemChecked(pos,list.getCheckedItemPositions().get(pos));
});