首页 > 代码库 > ListVIew中的数据发生改变时,数据不显示的问题

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

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

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

 

  有问题的写法:myModel = model;

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

        myModel.addAll(model);

  

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

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