ListVIew中的数据发生改变时,数据不显示的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ListVIew中的数据发生改变时,数据不显示的问题相关的知识,希望对你有一定的参考价值。

  在进行listview的数据添加的时候,改变数据源后使用notifyDataSetChanged()方法刷新数据源的时候,发现界面根本不显示数据,一脸懵逼。

  最后把问题放了一周后,找到了解决办法,原因是我把数据源改变的时候是直接赋值的,看网上的说法是改变了数据源的引用,而你给listview添加数据的时候,其实是给的一个句柄,而你给数据源直接赋值的时候是改变了句柄的,导致两处的句柄不同,而notifyDataSetChanged()方法其实是监控的前一个句柄的变化,所以导致notifyDataSetChanged()就不能刷新数据了。

 

  有问题的写法:myModel = model;

  正确的写法:myModel.clear();

        myModel.addAll(model);

  

  不知道你们看懂没有,不管懂没懂,反正这么写就对了

以上是关于ListVIew中的数据发生改变时,数据不显示的问题的主要内容,如果未能解决你的问题,请参考以下文章

在对话框中的 ListView 中获取数据时出错?

ListView的点击事件,长按事件,数据刷新

Binding 中的对象未显示在 ListView 中

在 ListView 中显示 Firebase 数据

在 ListView 中显示 Firebase 数据

listview点击item中的button改变item中的其它的控件的值