设置项目onItemClick / ListView /

时间:2011-12-06 09:30:19

标签: android listview onitemclick

我有ListView和按钮的活动 - “全部清除”和“确定”。 在“清除所有”按钮上,我清除了项目的检查状态 - 它工作正常。

m_list.setItemChecked(pos, false); 

on onItemClick我正在尝试更改项目状态/已检查< - >未经检查/取决于复杂的业务逻辑。 Bussines层决定检查 或不是一个以上的项目。我正在尝试相同的代码:

m_list.setItemChecked(position, bCheck); 

它不起作用。后面的数据只更改了视图而不是。

“全部清除”代码:

@Override
public void onClick(View v)
{
    if (v == m_map)
        GoToMap();
    else if (v == m_clear)
    {
        for (int i=0; i < m_poiCategories.size();i++)
        m_list.setItemChecked(pos, false);
    }
}

此代码不起作用:

m_list.setOnItemClickListener(new OnItemClickListener()
    {
    @Override
    public void onItemClick(AdapterView<?> listView, View selectedItem, int position, long itemId)
    {
        boolean b = true;
        ....
        m_list.setItemChecked(position, b);
    }
});

1 个答案:

答案 0 :(得分:3)

如果您正在使用ListView,则需要在更改任何数据时从UI线程调用notifyDataSetChanged()。这将通过多次调用getView()来更新UI,具体取决于显示的项目数。

确保getView()已正确实施。

作为参考,我强烈建议您查看并理解:http://www.youtube.com/watch?v=wDBM6wVEO70