美文网首页
notifyDataSetChanged不生效原因

notifyDataSetChanged不生效原因

作者: 碎念枫子 | 来源:发表于2016-07-06 10:45 被阅读559次

    很多时候我们在listview中的数据变化的时候需要动态更新listView而使用notifyDataSetChanged();这个方法来刷新Listview,当该数据来源于数据库查询的时候,那么你就要注意了。

    private ArrayList<HashMap<String, Object>> usersList;                  
    usersList= query(......);     //根据查询函数获取一个ArrayList并赋值给绑定到Adapter的数据源usersList 
    sAdapter.notif; 
    

    如果你也是: 上面这种形式去刷新ListView的数据的话, 是不可以更新的. 必须改成如下形式:

    //usersList= query(......);    
    usersList.clear();  
    usersList.addAll(query(......)); 
    sAdapter.notifyDataSetChanged(); 
    

    原因是: 在数据库查询之后返回了一个新的list,notifyDataSetChanged()这个方法会去检查原先接收到的地址上面检查数据变化,所以当list指向的地址发送更改的时候该方法是无效的。

    相关文章

      网友评论

          本文标题:notifyDataSetChanged不生效原因

          本文链接:https://www.haomeiwen.com/subject/hsrkjttx.html