安卓---下拉刷新---上拉加载---解决导入library等自生成库文件失败的问题
2016-04-22 09:18
453 查看
本文的下拉刷新以及上拉加载都是用PullToRefresh实现的,关于PullToRefresh的介绍以及源码,网上可以找到很多,本人在此不再赘述。
PullToRefresh是一套实现非常好的下拉刷新库,它支持:
ListView
ExpandableListView
GridView
WebView
ScrollView
HorizontalScrollView
ViewPager
等多种常用的需要刷新的View类型,而且使用起来也十分方便。
(下载地址:https://github.com/chrisbanes/Android-PullToRefresh)
PullToRefresh基本用法:
1、在布局文件中添加PullToRefresh控件,比如PullToRefreshListView;
2、在Activity中,设置监听器OnRefreshListener以响应用户下拉操作;
3、在监听器的onRefresh()方法中执行数据刷新操作,可以通过AsyncTask来实现(一般用于网络数据的操作,如果仅仅是演示,没必要通过AsyncTask实现);
4、在AsyncTask中获取到数据后,记得调用onRefreshComplete()方法通知PullToRefresh控件数据已获取完毕,可以结束刷新操作。
现在正式开始
首先:预览一下效果
View Code
整个工程就完成了,主要代码来源:http://www.cnblogs.com/tianzhijiexian/p/4023802.html
当然大家也可以自己写自己特色ListView的下拉刷新,可以参考http://blog.csdn.net/loongggdroid/article/details/9385535
这篇博客讲解很清楚:http://blog.csdn.net/leehong2005/article/details/12567757
2016.5.15找到了一个感觉万能的下拉刷新,在此标记一下:http://www.jb51.net/article/39714.htm,
http://www.2cto.com/kf/201408/329317.html源码下载地址:https://github.com/jingchenUSTC/PullToRefreshAndLoad
PullToRefresh是一套实现非常好的下拉刷新库,它支持:
ListView
ExpandableListView
GridView
WebView
ScrollView
HorizontalScrollView
ViewPager
等多种常用的需要刷新的View类型,而且使用起来也十分方便。
(下载地址:https://github.com/chrisbanes/Android-PullToRefresh)
PullToRefresh基本用法:
1、在布局文件中添加PullToRefresh控件,比如PullToRefreshListView;
2、在Activity中,设置监听器OnRefreshListener以响应用户下拉操作;
3、在监听器的onRefresh()方法中执行数据刷新操作,可以通过AsyncTask来实现(一般用于网络数据的操作,如果仅仅是演示,没必要通过AsyncTask实现);
4、在AsyncTask中获取到数据后,记得调用onRefreshComplete()方法通知PullToRefresh控件数据已获取完毕,可以结束刷新操作。
现在正式开始
首先:预览一下效果
package com.example.android_listview; import java.util.LinkedList; import com.handmark.pulltorefresh.library.PullToRefreshListView; import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode; import android.os.AsyncTask; import android.widget.ArrayAdapter; public class GetDataTask extends AsyncTask<Void, Void, Void>{ private PullToRefreshListView mPullRefreshListView; private ArrayAdapter<String> mAdapter; private LinkedList<String> mListItems; public GetDataTask(PullToRefreshListView listView, ArrayAdapter<String> adapter,LinkedList<String> listItems) { // TODO 自动生成的构造函数存根 mPullRefreshListView = listView; mAdapter = adapter; mListItems = listItems; } @Override protected Void doInBackground(Void... params) { //模拟请求 try { Thread.sleep(2000); } catch (InterruptedException e) { } return null; } @Override protected void onPostExecute(Void result) { // TODO 自动生成的方法存根 super.onPostExecute(result); //得到当前的模式 Mode mode = mPullRefreshListView.getCurrentMode(); if(mode == Mode.PULL_FROM_START) { mListItems.addFirst("这是刷新出来的数据"); } else { mListItems.addLast("这是加载出来的数据"); } // 通知数据改变了 mAdapter.notifyDataSetChanged(); // 加载完成后停止刷新 mPullRefreshListView.onRefreshComplete(); } }
View Code
整个工程就完成了,主要代码来源:http://www.cnblogs.com/tianzhijiexian/p/4023802.html
当然大家也可以自己写自己特色ListView的下拉刷新,可以参考http://blog.csdn.net/loongggdroid/article/details/9385535
这篇博客讲解很清楚:http://blog.csdn.net/leehong2005/article/details/12567757
2016.5.15找到了一个感觉万能的下拉刷新,在此标记一下:http://www.jb51.net/article/39714.htm,
http://www.2cto.com/kf/201408/329317.html源码下载地址:https://github.com/jingchenUSTC/PullToRefreshAndLoad
相关文章推荐
- 3. Longest Substring Without Repeating Characters
- Android Scroll 详解
- C#字符串转日期格式
- selenium学习笔记(selenium下载安装)
- 安装IIS后启动tomcat报80端口被占用
- 求从小到大的第1500个丑数
- 关于EF分页查询报错(Count must have a non-negative value.)的解决方案
- 每天laravel-20160723|Application-3
- 在计算机中删除指定文件
- 该如何解释我们的第六感
- JS中的this变量的使用介绍
- cocoapods常见错误
- 利用UIWebView打造一个炫酷的视频背景视图(OC & Swift)
- 剑指offer面试题 二维数组的查找
- iOS Apple Pay详解以及处理支付逻辑(附带Demo)
- 输出数组的全部组合
- 每天laravel-20160723|Application-3
- 关于H5 audio标签的个人使用心得
- 几个常用的正则验证表达式-可以满足一般需求
- mac中显示隐藏文件