android ListView和PullToRefreshListView刷新不出数据问题

ListView和PullToRefreshListView的刷新机制都一样。
如果在使用ListView 和PullToRefreshListView 不是高度问题和显示因此问题。但还是出现了数据
notifyDataSetChanged
不出来的情况。
接下来分析:
1.情况一:


android ListView和PullToRefreshListView刷新不出数据问题_第1张图片
image.png

数据源是mData
但你清楚数据的时候把数据源替换了:

mData = listInfo.infoList;

出错原因:这样就会导致数据源不一致使用 adapter.notifyDataSetChanged();时候数据刷新不出来。
2.情况二:
数据还是mData:
添加数据是使用

mData.clear();
mData.addAll(listInfo.infoList);

数据缘不变:
但你使用自定义刷新方法:

adapter.notifyDataSetChanged(mData);

adapter里面定义刷新方法:

public void notifyDataSetChanged(ArrayList lists){if(lists != null) {list.clear();list.addAll(lists);}notifyDataSetChanged();}

出错原因:这时,数据源是mData,刷新方法传入的也是mData,list持有的就是mData
那么在list.clear()操作的时候。会把mData清空也就是list和lists都会清空。
这时notifyDataSetChanged();
也是刷新不出数据。

通过这两种情况 我知道如何正确的刷新了:
情况一正确使用:
不变数据源,数据请求得到新数据 使用:

mData.clear();
mData.addAll(listInfo.infoList);

数据源不变 使用adapter.notifyDataSetChanged(); 数据刷新出来。

情况二正确使用:
替换数据源,替换数据请求得到的新数据源:

mData = listInfo.infoList;

让后使用自定义刷新方法:

adapter.notifyDataSetChanged(mData);

这样就可以刷新出数据了

你可能感兴趣的:(android ListView和PullToRefreshListView刷新不出数据问题)