PullToRefresh代码案例
2017-09-17 20:34
169 查看
//Layou布局
//MainActivity假数据模拟
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.ptf.MainActivity"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/ptf" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
//MainActivity假数据模拟
package com.bwie.ptf; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ArrayAdapter; import android.widget.ListView; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.util.LinkedList; public class MainActivity extends AppCompatActivity { private PullToRefreshListView ptf; private LinkedList<String> list = new LinkedList<String>(); private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件id ptf = (PullToRefreshListView) findViewById(R.id.ptf); //本来只可以下拉,现在也可以上拉 ptf.setMode(PullToRefreshBase.Mode.BOTH); initData();//加载数据 ptf.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { //下拉刷新的方法 new MyAsynTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { //上拉加载的方法 new MyAsynTask2().execute(); } }); } private void initData() { for (int i = 0; i < 8; i++) { list.add("我是第" + i + "条数据"); } adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, list); ptf.setAdapter(adapter); } class MyAsynTask extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Thread.sleep(2000); 4000 } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); list.addFirst("我是新加的数据"); adapter.notifyDataSetChanged(); ptf.onRefreshComplete(); } } class MyAsynTask2 extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); list.addLast("我是加载出的新数据1"); list.addLast("我是加载出的新数据2"); adapter.notifyDataSetChanged(); ptf.onRefreshComplete(); } } }
相关文章推荐
- PullToRefresh刷新的相关代码结合无限轮播
- Android使用PullToRefresh实现上拉加载和下拉刷新效果的代码
- pulltorefresh_GridView frangment代码
- 关于PullToRefreshLayout和PullToRefreshScrollView同时使用代码报错的问题
- Android代码优化----PullToRefresh+universal-image-loader实现从网络获取数据并刷新
- Android-PullToRefresh代码分析
- PullToRefreshListView布局属性及java代码应用
- android使用Ultra-PullToRefresh实现下拉刷新自定义代码
- 分析ActionBar-PullToRefresh的代码思路
- pulltorefresh_listView frangment代码
- pulltoRefresh里面有轮播和listView(代码)
- PullToRefresh使用详解(一)--构建下拉刷新的listView
- (一) 两个接口(IPullToRefresh、ILoadingLayout)与一个基类(PullToRefreshBase)
- [转] Android PullToRefresh扩展RecyclerView
- Android PullToRefresh (GridView 下拉刷新上拉加载)
- Android UI列表的上拉下拉刷新之Android-PullToRefresh
- [Android]Android Studio导入第三方工程库,以PullToRefreshViewLibrary为例
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- EGOTableViewPullRefresh下拉原理及代码详解
- 侧滑,tablayout,PullToRefreshListView