2011-07-23 89 views
1

我有一个列表视图,我需要突出一个项目编程如何以编程方式突出显示listview项目?

我tryed这一点:

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

回答

2

最后这些解决方案的工作,我这样做是通过不同的方式,改变所选项目的文本的颜色

1

你想在点击高亮?

然后覆盖onItemClickedListener()

,做这里面:

position = position - listview.getFirstVisibleItem(); 
listview.getChildAt(position).requestFocus(); 

或使用<selector

+0

不,不,不的onclick,编程 – NullPointerException

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的工具改变项目的颜色。 Regards,

+0

抱歉,但我不明白这个答案,我不想用滚动来选择,我想以编程方式选择,例如: CalendarList.setSelection(2); – NullPointerException

+0

对不起,如何:adaptview.getChildAt(2).setSelected(true); – NguyenDat

3

要突出显示触摸模式下的项目,您必须先调用CalendarList.requestFocusFromTouch();然后CalendarList.setSelection(2);

在触摸模式下,setSelection()不起作用。

相关问题