最近需要实现一个下拉刷新上拉加载更多的项目,目前已经实现,下面总结下实现过程中遇到的问题和相关解决;
首先理清思路:因为涉及到网络获取数据以及数据的缓存,所以看似简单的一个实现,加上这些后就变得稍微复杂点了,那就一步一步由浅入深的理解;
我将整体结构分成三个部分完成:
1.进入首页,先获取数据填充当前ListView(判断获取方式,需要缓存)
2.下拉刷新,获取最新数据(无需缓存,直接联网获取)
3.上拉加载更多,获取更多数据( 判断获取方式,需要缓存)
整体设计中我使用了两个时间标志位lastRefreshTime和LastLoadMoreTime,根据这两个标志位的值进行数据筛选加载,例如下拉刷新的时候,获取最新数据的判断条件就是其createdAtTime>lastRefreshTime
在获取到数据后,将数据第一项的createdAtTime赋值为lastRefreshTime,以此达到标志位的作用
下面开始详细理解:
第一部分 进入首页,获取数据填充当前ListView
在获取数据之前,有个很重要的事情需要做:创建sharedPerferenced对象,用于存储lastRefreshTime和lastLoadMoreTime。
按照从数据库中加载数据的步骤,通过传给adapter一个数据集就能达到目的,但是这里存在通过网络获取数据的方法,所以就需要先进行判断,数据填充步骤如下:(