Android 在MClick/ListView中选中设置项/

Android 在MClick/ListView中选中设置项/,android,listview,onitemclick,Android,Listview,Onitemclick,我有ListView和按钮的活动-“全部清除”和“确定”。 在“全部清除”按钮上,我清除项目的选中状态-它工作正常 m_list.setItemChecked(pos, false); 在onItemClick上,我试图根据复杂的业务逻辑更改项/已选中/未选中/的状态。业务层 或不适用于多个项目。我正在尝试相同的代码: m_list.setItemChecked(position, bCheck); 它不起作用。后面的数据仅在视图中更改,不在视图中更改 “全部清除”代码: @覆盖 公共v

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

m_list.setItemChecked(pos, false); 
在onItemClick上,我试图根据复杂的业务逻辑更改项/已选中/未选中/的状态。业务层 或不适用于多个项目。我正在尝试相同的代码:

m_list.setItemChecked(position, bCheck); 
它不起作用。后面的数据仅在视图中更改,不在视图中更改

“全部清除”代码:

@覆盖
公共void onClick(视图v)
{
if(v==m_映射)
GoToMap();
否则如果(v==m_清除)
{
对于(int i=0;i
此代码不起作用:

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);
    }
});
m_list.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView列表视图、View selectedItem、int位置、长项目ID)
{
布尔b=真;
....
m_列表。setItemChecked(位置b);
}
});

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

确保正确实现了
getView()


作为参考,我强烈建议您查看并理解:

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

确保正确实现了
getView()

作为参考,我强烈建议查看并了解:

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);
    }
});