PullToRefresh刷新加载

原创 2016年05月31日 21:40:14

Library下载地址:导入Library

https://github.com/chrisbanes/Android-PullToRefresh

一、PullToRefreshListView

1:xml布局

<com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/pull_refresh_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        android:divider="#19000000"
        android:dividerHeight="4dp"
        android:fadingEdge="none"
        android:fastScrollEnabled="false"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="false"
        android:smoothScrollbar="true" />

2:MainActivity.java核心代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        PullToRefreshListView pull_refresh_list = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
        pull_refresh_list.setMode(Mode.BOTH);
        // 设置初期数据
        initData();
        pull_refresh_list.setOnRefreshListener(new OnRefreshListener2<ListView>() {

        // 下拉Pulling Down
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
               /**
               *
               *下拉的时候数据重置
               */ 
               mList_all.clear();
              initData();
        }

        // 上拉Pulling Up
        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
              /**
               *
               *上拉的时候数据重置
               */   
               ............
         }
  });

         // 刷新适配器之后停止动画
         pull_refresh_list.onRefreshComplete();
    }

二、PullToRefreshGridView
1:xml布局

 <com.handmark.pulltorefresh.library.PullToRefreshGridView
        android:id="@+id/gv_gridview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"  

         />

2:BookInfoActivity.java核心代码

package com.example.yuekao3;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;

import com.example.adapter.BookInfoAdapter;
import com.example.bean.BookInfoBean;
import com.example.bean.BookInfoBean.MyData;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.GridView;

public class BookInfoActivity extends Activity {

    private PullToRefreshGridView gv_gridview;
    private int pn;
    private String id;
    private ArrayList<MyData> list = new ArrayList<MyData>();
    private BookInfoAdapter bookInfoAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_book_info);

        //得到控件
        gv_gridview = (PullToRefreshGridView) findViewById(R.id.gv_gridview);

        //设置同时支持上拉下拉
        gv_gridview.setMode(Mode.BOTH);
        // 异步请求数据

        BookInfoAsyncTask bookInfoAsyncTask = new BookInfoAsyncTask();
        bookInfoAsyncTask.execute("path");

        // 设置监听事件 刷新和加载
        gv_gridview.setOnRefreshListener(new OnRefreshListener2<GridView>() {

            @Override
            public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
                /**
                *
                *下拉刷新
                */
                list.clear();

                BookInfoAsyncTask bookInfoAsyncTask = new BookInfoAsyncTask();
                bookInfoAsyncTask
                        .execute("path");

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {

                /**
                *
                *上拉加载
                */
                BookInfoAsyncTask bookInfoAsyncTask = new BookInfoAsyncTask();
                bookInfoAsyncTask.execute("path" );

            }
        });

    }

    /**
     * 异步请求类
     * @author Administrator
     *
     */
    public class BookInfoAsyncTask extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            String strJson = getInfo(params[0]);
            return strJson;
        }

        @Override
        protected void onPostExecute(String result) {
            if (result != null) {

                Gson g = new Gson();
                BookInfoBean info = g.fromJson(result, BookInfoBean.class);
                list.addAll(info.result.data);
                if (bookInfoAdapter == null) {

                    bookInfoAdapter = new BookInfoAdapter(
                            BookInfoActivity.this, list);
                    gv_gridview.setAdapter(bookInfoAdapter);
                } else {

                    bookInfoAdapter.notifyDataSetChanged();
                }

                //设置刷新完成
                gv_gridview.onRefreshComplete();
            }

        }

        public String getInfo(String string) {
            try {
                URL url = new URL(string);

                HttpURLConnection urlConnection = (HttpURLConnection) url
                        .openConnection();
                urlConnection.setReadTimeout(3000);
                urlConnection.setRequestMethod("GET");
                urlConnection.setConnectTimeout(3000);
                int responseCode = urlConnection.getResponseCode();

                if (responseCode == 200) {
                    InputStream inputStream = urlConnection.getInputStream();

                    int len;
                    byte[] b = new byte[1024];
                    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

                    while ((len = inputStream.read(b)) != -1) {
                        outputStream.write(b, 0, len);
                    }
                    System.out.println(outputStream.toString());
                    return outputStream.toString();
                }

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }

    }
}

Android PullToRefresh 分析之五、扩展刷新加载样式

前言:接着上一篇《PullToRefresh 分析之四、扩展PullToRefreshRecyclerView》,这一篇主要分析如何扩展刷新加载样式,来创建各式各样的刷新加载效果。 一、 闲扯  ...
  • xuehuayous
  • xuehuayous
  • 2015年12月24日 15:26
  • 6216

PullToRrefresh自定义下拉刷新动画

参考自 http://blog.csdn.net/wwj_748/article/details/42523611 首先,下载著名的刷新框架https://github.com/chrisbanes/...
  • superjunjin
  • superjunjin
  • 2015年04月13日 14:32
  • 18873

PullToRefresh加载及刷新

首先要导入PullToRefreshLibrary或者依赖compile ‘com.github.userswlwork:pull-to-refresh:1.0.0’;但我个人比较习惯用依赖,因为在我...
  • wqzfy
  • wqzfy
  • 2017年10月18日 19:38
  • 48

PullToRefresh修改上拉下拉加载动画

修改PullTuRefreshListView源码: 实现 动画加载:第一步:源码分析:PullToRefrehListView 默认加载动画是很难看的: 默认是很难看的 但我们想要实...
  • u013233097
  • u013233097
  • 2016年11月28日 22:48
  • 2056

PullToRefresh(刷新加载)

/////////////////////////////////////////////  MainActivity    /////////////////////////////////////...
  • zixinfei
  • zixinfei
  • 2016年04月24日 21:15
  • 164

PullToRefresh实现刷新加载

使用PullToRefresh实现刷新加载
  • i19920203
  • i19920203
  • 2015年06月15日 17:16
  • 161

使用PullToRefresh实现下拉刷新和分页加载功能

PullToRefresh是一套实现非常好的下拉刷新库,它支持: 1.ListView 2.ExpandableListView 3.GridView 4.WebView ...
  • xieluoxixi
  • xieluoxixi
  • 2016年12月25日 18:37
  • 1071

PullToRefresh第三方刷新控件使用总结

1)基本介绍 github地址:  https://github.com/chrisbanes/Android-PullToRefresh 支持ListView,GridView的刷新操作(上拉刷新、...
  • chenrushui
  • chenrushui
  • 2016年05月13日 13:40
  • 693

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

现在ListView和GridView逐渐被RecyclerView替代,之前基于ListView和GridView的刷新加载框架也已经过时,这里介绍基于RecyclerView的刷新加载框架——Pu...
  • a1533588867
  • a1533588867
  • 2017年02月09日 16:55
  • 7612

Android-PullToRefresh 进入自动刷新 终极解决方法

Android-PullToRefresh 进入自动刷新 终极解决方法
  • lxf8282710
  • lxf8282710
  • 2016年07月22日 14:43
  • 280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PullToRefresh刷新加载
举报原因:
原因补充:

(最多只允许输入30个字)