Android notifyDataSetChanged的自定义适配器不工作

Android notifyDataSetChanged的自定义适配器不工作,android,Android,下面的示例将使用sectionlistview 但是如何实现适配器.notifyDataSetChanged() 添加侦听器以更新listview数据: mListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

下面的示例将使用sectionlistview

但是如何实现适配器.notifyDataSetChanged()

添加侦听器以更新listview数据:

mListView.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Toast.makeText(SectionAdapterActivity.this, ""+position+"", Toast.LENGTH_SHORT).show();
            test();

        }
    });
mListView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(SectionAdapterActivity.this,“+position+”,Toast.LENGTH\u SHORT.show();
test();
}
});
我添加的新函数仅用于更改/更新值(仅用于测试):

公共无效测试()
{
clear();
对于(int i=0;i<3;i++){
hashMap.put(“邮件”,String.valueOf(1100+i),1);
}
对于(int j=0;j<4;j++){
hashMap.put(“Case”,String.valueOf(2100+j),15);
}
对于(int j=0;j<5;j++){
hashMap.put(“文件”,String.valueOf(10000+j),20);
}
mListView.invalidate();
mListView.invalidateViews();
adapter.notifyDataSetChanged();
Log.e(“dada”,hashMap.toString());
}}

似乎不起作用,有人能帮忙吗?

我不太明白您调用notifyDataSetChange()想要实现什么

此方法仅当您在创建适配器后更改适配器使用的逻辑数据集合/数据库时生效。在这种情况下,将导致使用新数据更新列表

如果这就是你想要做的,那么就使用它——你需要做的很简单:只要打电话:

adapter.notifyDataSetChanged();
就这样:)。没有别的了

  • 确保您已经为
    列表视图
    使用了相同的
    哈希映射
    适配器
    对象,并且在创建
    适配器
    对象时使用了
    哈希映射
    对象
  • 确保已调用
    适配器.notifyDatasetChanged()
    在那里放置一些日志
  • 调用notifyDatasetChanged()后,在日志中打印HashMap对象值,并检查ListView和日志中的项目是否相同
  • 只有当HashMap中的数据发生更改时,
    notifyDatasetChanged()
    的效果才会显示,如果它保持为prev,则无法确定是否调用了它
  • 看看你的代码,我想这部分代码没有问题

  • 我对此不是很确定,但请先调用NotifyDataSetChanged(),然后尝试invalidateViews()。在声明可见的适配器和代码行中发布?列表变为空白还是什么都没发生?
    adapter.notifyDataSetChanged();