怎么用pulltorefresh

package com.example.month;

import android.os.Handler;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RelativeLayout;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private DrawerLayout drawer;
    private RelativeLayout menu;
    private List<JsonBean.DataBean> list = new ArrayList<>();
    private PullToRefreshListView pullre;
    private int operType=1;//1:刷新 2:加载更多
    private int pageIndex=1;
    private Myadapter myadapter;
    private String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取资源id
        drawer = (DrawerLayout) findViewById(R.id.drawer);
        menu = (RelativeLayout) findViewById(R.id.menu);
        ImageView img = (ImageView) findViewById(R.id.img);
        pullre = (PullToRefreshListView) findViewById(R.id.pullre);
        //设置监听事件关闭侧滑菜单
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                drawer.closeDrawer(menu);
            }
        });

        //进行初始化
        initPullListView();
        requestNetData();
    }

    public void initPullListView(){
        //设置模式  BOTH:支持上拉与下拉  PULL_FROM_START:支持下拉   PULL_FROM_END:支持上拉
        pullre.setMode(PullToRefreshBase.Mode.BOTH);
        //2.设置头尾布局中的文本
        ILoadingLayout headerlayout = pullre.getLoadingLayoutProxy(true, false);//第一个参数为true,代表设置头部布局中文本
        headerlayout.setPullLabel("下拉刷新...");
        headerlayout.setRefreshingLabel("正在刷新...");
        headerlayout.setReleaseLabel("松开刷新....");

        ILoadingLayout footerlayout = pullre.getLoadingLayoutProxy(false, true);
        footerlayout.setPullLabel("加载更多....");
        footerlayout.setRefreshingLabel("正在加载....");
        footerlayout.setReleaseLabel("松开加载....");

        //3.设置上拉与下拉的监听
        pullre.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                //下拉,刷新回调
                pageIndex=1;
                operType=1;
                requestNetData();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                //上拉,加载
                pageIndex++;
                operType=2;
                requestNetData();
            }
        });
    }


    //请求数据
    public void requestNetData(){
        Mytask task = new Mytask(new HttpCallback() {
            @Override
            public void callback(String getjs) {
                //解析
                Gson gson = new Gson();
                JsonBean jsonBean = gson.fromJson(getjs, JsonBean.class);
                if(operType==1){
                    //清空
                    list.clear();
                    list.addAll(0,jsonBean.getData());//将新请求的数据放在集合列表的最前面
                }else{
                    //添加到集合中
                    list.addAll(jsonBean.getData());
                }
                //显示
                Setadapter();
                //关闭尾布局
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        pullre.onRefreshComplete();
                    }
                },3000);
            }
        });
        task.execute(url);
    }

    private void Setadapter(){
        if(myadapter==null){
            myadapter = new Myadapter(this,list);
            pullre.setAdapter(myadapter);
        }else{
            myadapter.notifyDataSetChanged();
        }
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值