手动绑定的listview分页加载如何实现分页

我在网上收索了很多关于这方面的,也有这中问题,但都没有解决我的问题,于是我只能再贴出来求大家帮助了。

绑定数据后,正常的翻页是没有问题的。但是如果在查询条件中输入要查询的内容,不点击查询按钮直接点击翻页,这时候就显示不正常了,但数据库中有该调数据的。还有就是,在除第一页外的其他页查询时也不正确显示数据。后来在无意中改了框架(用的是4.0的,改成3.5的框架),没想到居然可以了,除了改框架外什么都没动,源码还是一样的。

}

由于listview控件本身没有分页的功能,为了达到这么目的,

方法一:我们可以结合其他空间来完成,但是对framework要求的版本也比较高;

方法二:通过sql语句来完成,通过sql语句完成分页。

这里我们采用第二种方法:

}

     在上一篇中,我们实现了底部布局(即带上了进度条)。没有读过的朋友可以点击下面的链接:

    但是进度条的消失,以及数据的加载我们都没有实现,那么在本节中,我们来完成分页加载。具体的效果我就不贴图了,就是第一篇效果展示的那些效果。

    代码还是 有些难度。需要用到回调接口,实现ListView的下拉监听等知识以及判断何时进度条出现何时消失等。

陈述一下具体逻辑吧。首先在initView中,我们不仅要加上底布局,还应该时底布局消失。然后我们实现ListView的OnScrollListener接口,监听它的滚动。在其中的一个方法onScroll,我们可以获得到当前第一个可见item的编号以及当前有多少个可见item和总共有多少个item。这样子我们就可以轻易由计算得出是否滚动带最底部了。然后在onSrollStateChanged方法中做判断,如果滚动到最底部,就显示出正在加载数据的进度条,并完成数据的加载。但是有一个问题是,加载的数据在MainActivity里面,我们怎么在MyListView中获得加载的数据?这就要使用接口回调,我们在MyListView中设定一个回调接口,然后在MainAcivty中回调,就可以实现MyListView获得加载的数据。 好了,大体逻辑就是这样子的,剩下的就是细节上的逻辑了。我们看代码,注释解释的也很清楚了。如下:

24 //注意,三个构造方法都要重写 40 //定义一个回调接口,用来获得要加载的数据 57 //注意,这句代码的意思是给自定义的ListView加上底布局 60 //首先需要隐藏这个底部布局 69 //加载数据完成后,需要执行的操作 73 //底布局也要隐藏 82 //如果最后一个可见item等于总的item,且当前滚动状态为滚动停止,就应该开始加加载数据了 90 //设置底布局可见 98 * 该方法用来监听实时滚动中的item
36 * 该方法初始化数据,即提供初始的素材 47 * 该方法提供模拟的加载数据 59 //重写回调方法 62 //注意之所以使用Handlder,主要是想让下面的 63 //操作延迟5秒钟,以体现效果。实际开发中不需要 70 //获得加载数据 75 //然后通知加载数据已经完成了

    好了,一切都OK了。运行吧,看看分页加载到底是什么效果!

}

我要回帖

更多关于 listview分页加载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信