我有一个listview,我需要以编程方式突出显示一个项目
我尝试了这个:
CalendarList = (ListView) findViewById(R.id.CalendarList);
CalendarList.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, MyApplication.roundMatches(CalendarPicker.getValue())));
CalendarList.setSelection(2);
但是setSelection不起作用:S
答案 0 :(得分:3)
要在触摸模式下突出显示项目,您必须先调用CalendarList.requestFocusFromTouch();然后是CalendarList.setSelection(2);
在触摸模式下,setSelection()本身不起作用。
答案 1 :(得分:2)
最后这些解决方案都不起作用,我通过不同的方式做到了这一点,改变了所选项目文本的颜色
答案 2 :(得分:1)
您想要点击突出显示吗?
然后覆盖onItemClickedListener()
并在里面执行此操作:
position = position - listview.getFirstVisibleItem();
listview.getChildAt(position).requestFocus();
或使用<selector
。
答案 3 :(得分:0)
尝试覆盖onScroll()方法:
@Override
public void onScroll(AbsListView listView, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
/* Get view of item in list */
View view = listView.getSelectedView();
}
当列表视图的视图对象可以改变你想要的时候,注意你必须在失去焦点时实现句柄代码。
否则,我认为有另一种解决方案是通过Adapter的工具改变颜色。 的问候,