我有Activity与ListView和按钮- "clear all"one_answers"OK"。在"清除所有"按钮上,我清除了项目的选中状态-它工作得很好。
m_list.setItemChecked(pos, false);
On onItemClick我试图改变项目的状态/检查<->未检查/取决于复杂的业务逻辑。业务层决定检查或者不止一件。我正在尝试相同的代码:
m_list.setItemChecked(position, bCheck);
它不工作。
"Clear all"代码:
@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);
}
});
如果您正在使用ListView
s,则需要在任何数据更改时从UI线程调用notifyDataSetChanged()
。这将通过多次调用getView()
来更新UI,具体取决于显示的项目数量。
确保您的getView()
正确实现。
作为参考,我强烈建议查看和理解:http://www.youtube.com/watch?v=wDBM6wVEO70