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

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

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

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

 listView.setSelection(0); 

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

  • ListView工具:listitem无法在android studio 2.2稳定通道中运行
  • 在android上添加一个ListView下的button
  • 完成活动后,如何取下键盘?
  • Android游标错误 - “确保游标在从中访问数据之前已正确初始化...”
  • 知道ListView中的View何时离开屏幕?
  • 带单选button模式下的RadioButton的Android ListView和一个自定义的行布局
  • 当它更新时如何保持listview的滚动位置
  • Android:getView()在自定义适配器中调用两次
  • 您可以使用以下代码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