PullToRefresh的使用
来源:互联网 发布:董岗彪 知乎 编辑:程序博客网 时间:2024/05/16 07:58
PullToRefresh是一套非常实用的下拉刷新库,支持ListView,ExpandableListView,GridView和WebView。
实例一:
public class LocalListActivity extends AppCompatActivity { private PullToRefreshListView mPullLv; private LinkedList<String>itemLists; private ArrayAdapter<String>adapter; Handler hander = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); adapter.notifyDataSetChanged(); //设置加载完成后,取消加载的进度条 mPullLv.onRefreshComplete(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_local_list); mPullLv = (PullToRefreshListView) findViewById(R.id.pull_lv); itemLists = new LinkedList<>(); initData(); //设置加载的模式 mPullLv.setMode(PullToRefreshBase.Mode.BOTH); //设置刷新的监听器 mPullLv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //下拉刷新时会回调的方法 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { itemLists.clear(); loadData();; hander.sendEmptyMessageDelayed(1,2000); } //上啦加载时执行的方法 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { //模拟耗时操作 new Thread(){ @Override public void run() { super.run(); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } loadData(); hander.sendEmptyMessage(1); } }.start(); } }); } /** * 初始化数据 * */ private void initData(){ for (int i = 0; i < 20; i++) { itemLists.add("第"+i+"条数据"); } adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,itemLists); mPullLv.setAdapter(adapter); } //加载数据 private void loadData(){ int itemSize = itemLists.size(); for (int i = 0; i < 20; i++) { itemLists.add("第"+(itemSize+i)+"条数据"); } }}
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_lv" android:layout_width="match_parent" android:layout_height="match_parent"> </com.handmark.pulltorefresh.library.PullToRefreshListView>效果:
对于GridView的使用:
public class LocalGridActivity extends AppCompatActivity { private PullToRefreshGridView mPullGv; private LinkedList<String>list; private ArrayAdapter<String>adapter; private int index = 0; private int lastIndex = 0; Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { adapter.notifyDataSetChanged(); mPullGv.onRefreshComplete(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_local_grid); mPullGv = (PullToRefreshGridView) findViewById(R.id.pull_gv); list = new LinkedList<>(); initData(); lastIndex = list.size(); adapter = new ArrayAdapter<String>(this,R.layout.item_gv_local,R.id.id_item_tv,list); mPullGv.setAdapter(adapter); //设置模式 mPullGv.setMode(PullToRefreshBase.Mode.BOTH); //设置刷新监听器 mPullGv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) { //怎么获取下拉刷新的时间。 String label = DateUtils.formatDateTime(getApplicationContext(),System.currentTimeMillis(), DateUtils.FORMAT_ABBREV_ALL|DateUtils.FORMAT_SHOW_DATE|DateUtils.FORMAT_SHOW_TIME); mPullGv.getLoadingLayoutProxy().setLastUpdatedLabel(label); index--; list.addFirst(index+""); handler.sendEmptyMessageDelayed(1,2000); } @Override public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) { list.add(lastIndex+""); lastIndex++; handler.sendEmptyMessageDelayed(1,2000); } }); } private void initData(){ for (int i = 0; i < 30; i++) { list.add(i+""); } }}
<com.handmark.pulltorefresh.library.PullToRefreshGridView android:id="@+id/pull_gv" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns ="2" > </com.handmark.pulltorefresh.library.PullToRefreshGridView>效果:
0 0
- PullToRefresh的使用
- pulltorefresh的使用
- ActionBar-PullToRefresh的使用
- PullToRefresh的简单使用
- ActionBar-PullToRefresh的使用
- pulltorefresh的使用
- PullToRefresh的使用
- pullToRefresh的使用
- PullToRefresh的简单使用
- 使用 PullToRefresh 的总结
- PullToRefresh的使用
- Android-PullToRefresh的使用
- PullToRefresh的使用
- pulltorefresh的使用
- Android-PullToRefresh 库的使用
- android-pulltorefresh的使用浅析
- Android PullToRefresh的使用详解
- pulltorefresh框架的使用心得
- 模板信息接口&网页授权接口(IMOOC高级篇)
- hduoj1018
- 【31.93%】【codeforces 670E】Correct Bracket Sequence Editor
- HDU2025查找最大元素
- Spark源码走读概述
- PullToRefresh的使用
- webservice生成客户端方式总结
- 数据分箱的适用情形
- HDU2026 首字母改大写
- selenium下载
- VS2008(VC++)使用Ado读取SQL Server和Access数据库
- 离线安装(免安装)+win7(64)+theano+dlib+opencv+Anacomda(2.7)
- HDU2027统计元音
- P1181 数列分段