如何以编程方式突出显示列表视图的项目?

时间:2011-07-23 00:43:19

标签: android android-listview android-arrayadapter

我有一个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

4 个答案:

答案 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的工具改变颜色。 的问候,