列表之Listview:下拉刷新、上拉加载、分页

1.整体思路:

设置一个pageIndex记录当前页数,最开始设置为0;
设置一个int常量PAGE_SIZE定义每页的数据数目;

此处有一个需要注意的是:怎么通知后台你需要下一页,当后台有新的数据加入后,每页的数据内容会有改动,纯粹的传递第几页,会出现数据混乱的情况。此处根据后台的数据特性,我们使用标记获取到的最后一条数据,把获取到的最后一条数据的时间字段传递给后台,后台获取到后再自行处理,返回给我们正确不重复的新的一页数据。

2.上拉加载

开始上拉操作,则同时开始刷新,获取到新的一页数据后,然后pageIndex加一,判断此list的size是否小于PAGE_SIZE,若小于则表示没有更多的新数据了,反之则有,同时结束本次刷新;

3.下拉刷新

下拉则把pageIndex置为0,方便以后重新从0开始记录页数,获取到新的一页数据后,然后pageIndex加一,判断此list的size是否小于PAGE_SIZE,若小于则表示没有更多的新数据了,反之则有,同时结束本次刷新;
注:上拉与下拉在处理当前页数上有细微区别,需要注意!!!

4.给listview赋值

listAdapter.initData(pageIndex, dataList)
 private int mFirstPageIndex = 0;
 protected List mListData = new ArrayList();
 public void initData(int pageIndex, List data) {
        if (pageIndex == mFirstPageIndex) {
            mListData.clear();
        }
        if (null != data) {
            mListData.addAll(data);
        }
        this.notifyDataSetChanged();
    }

你可能感兴趣的:(Android之路)