前言
前几天写了篇关于 PullToRefresh控件的DEMO导入的博客,但由于当时没有用到,所以就没细往下讲,现在开始到了实战阶段,用到了PullToRefresh 的listView样式,网上有讲的,但讲的不多,而且没有详细的例子来说,下面我讲讲这个东东的实现方法。这个例子对应 PullToRefreshDemo里的第一个选项ListView;
注意:本篇仅写的如何实现下拉刷新,对于上拉加载的问题,参见《使用PullToRefresh实现下拉刷新和上拉加载》
相关文章:
- 1、《List控件使用–SimpleAdapter使用详解(一)》
- 2、《List控件使用–SimpleAdapter使用详解(二)》
- 3、《PullToRefresh使用详解(二)—重写BaseAdapter实现复杂XML下拉刷新》
- 4、《PullToRefresh使用详解(三)–实现异步加载的下拉刷新列表》
- 5、《PullToRefresh使用详解(四)–利用回调函数实现到底加载》
- 6、《PullToRefresh使用详解(五)–下拉刷新的ScrollView》
效果图:
一、导入Library
下载源码后,里面有个Library工程,添加工程到Eclipse中。
另外extras文件夹还有两个工程:PullToRefreshListFragment和PullToRefreshViewPager,由于我们的这个用不到他们的库文件,所以不必导入了;
二、实战
1、新建工程,添加Libray库到工程中
新建工程(try_PullToRefresh)后,右键-》Properties-》Android-》Add 选择上面的Library,然后就是这个样子的
2、重写activity_main.xml
|
|
其中中间那一大段
3、JAVA代码讲解
全部代码:
代码讲解:
1、变量定义
2、在OnCreate()中主要分为两步
(1)初始化mPullRefreshListView并设置监听器,以执行当需要刷新时,应该怎么办,至于真正执行刷新的类GetDataTask()我们后面再细讲,对应代码为:
(2)设置适配器列表内容,并与ListView绑定以显示出来,对应代码为:
3、执行刷新的类GetDataTask()
先贴出这段代码来:
(1)派生自AsyncTask
由于派生自AsyncTask,所以下面的那个函数doInBackground和onPostExecute就不难理解了,这两个函数是AsyncTask必须是重写的两个函数
(2)doInBackground函数
doInBackground 执行要于后台执行的语句,返回的值可以是任意类型,但要提前在extends AsyncTask
(3)onPostExecute函数
onPostExecute()是对返回的值进行操作,并添加到ListView的列表中,有两种添加方式添加到头部—-mListItems.addFirst(result);和添加在尾部—-mListItems.addLast(result);
至于 AsyncTask,下面是几个网页,讲的还可以,大家可以参考下:
- 《android AsyncTask 详解》
- 《android AsyncTask 详解》(同名)
- 《android之AsyncTask》
《Android源码分析–带你认识不一样的AsyncTask》
附加说明
设置向上拉刷新还是向下拉刷新的代码:
123mPullRefreshListView.setMode(Mode.PULL_FROM_END);//向下拉刷新mPullRefreshListView.setMode(Mode.PULL_FROM_START);//向上拉刷新mPullRefreshListView.setMode(Mode.BOTH);//两端刷新
注意:这只是一个精简版,在源码中还有一些可借签的代码,可以在看懂这个以后,可以回过头来再看看源码,我相信肯定会有收获的。