以编程方式在ListView中设置激活的项目

我有一个简单的ListView与一些项目,其中setChoiceMode设置为ListView.CHOICE_MODE_SINGLE ,这意味着当我触摸一个项目时,它突出显示。 这样用户可以看到select了什么菜单选项( ListView是一个菜单):

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

但是,我想从代码(而不是触摸)更改该select。 我试过这个:

 listView.setSelection(0); 

但似乎没有效果。 可能是因为select和激活是不同的概念。 没有setActivated(int)方法可用。

Solutions Collecting From Web of "以编程方式在ListView中设置激活的项目"

您可以使用以下代码select项目:

 listView.setItemChecked(position, true); 

使用这种方法为我工作

 listView.performItemClick(listView, position, listView.getItemIdAtPosition(position)); 

该文件说If in touch mode, the item will not be selected but it will still be positioned appropriately

因此,您需要使用ListView.setItemChecked(int position, boolean checked)方法作为listView.setItemChecked(position, true)将位置设置为selected