RecycleView+上拉刷新下拉加载

package bwie.zheng;

import android.support.v7.widget.RecyclerView;



import android.content.Context;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.List;

/**
 * Created by Zhengaihua on 2016/11/21.
 */
public class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> {
    private Context context;
    private List<Bean.ResultBean.DataBean> dat;

    public HomeAdapter(Context context, List<Bean.ResultBean.DataBean> dat) {
        this.context = context;
        this.dat = dat;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
                context).inflate(R.layout.item, parent,
                false));
        return holder;
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.tv.setText(dat.get(position).getContent());
        holder.ti.setText(dat.get(position).getUpdatetime());
    }

    @Override
    public int getItemCount() {
        return dat.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder {
        TextView tv;
        TextView ti;

        public MyViewHolder(View view) {
            super(view);
            tv = (TextView) view.findViewById(R.id.content);
            ti=(TextView)view.findViewById(R.id.timecon);
        }
    }
}
package bwie.zheng;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

import com.google.gson.Gson;
import com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView;

import java.util.ArrayList;
import java.util.List;

import baseactivity.BaseActivity;
public class MainActivity extends BaseActivity {
    private PullLoadMoreRecyclerView recycleview;
    int tag;
    private List<Bean.ResultBean.DataBean> list2 = new ArrayList<>();

    private HomeAdapter mAdapter;
    private List<Bean.ResultBean.DataBean> list = new ArrayList<>();
    private String url = "http://japi.juhe.cn/joke/content/list.from?key= 874ed931559ba07aade103eee279bb37 &page=2&pagesize=10&sort=asc&time=1418745237";

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String js = (String) msg.obj;
            Gson gson = new Gson();
            Bean be = gson.fromJson(js, Bean.class);
            list = be.getResult().getData();
            int tag=msg.arg1;
            switch (tag) {
                case 1:
                    list2.addAll(list);
                    recycleview.setLinearLayout();
                    mAdapter = new HomeAdapter(MainActivity.this, list2);
                    recycleview.setAdapter(mAdapter);
                    break;
                case 2:
                    list2.clear();
                    list2.addAll(list);
                    mAdapter.notifyDataSetChanged();
                    recycleview.setPullLoadMoreCompleted();

                    break;

                case 3:
                    list2.addAll(list);
                    mAdapter.notifyDataSetChanged();
                    recycleview.setPullLoadMoreCompleted();
                    break;
            }
            super.handleMessage(msg);
        }
    };


    @Override
    public int bindLayout() {
        return R.layout.activity_main;
    }

    @Override
    public void initData() {

    }

    @Override
    public void initView(Bundle savedInstanceState) {
        recycleview = (PullLoadMoreRecyclerView) findViewById(R.id.re);
        recycleview.setLinearLayout();

        recycleview.setPullRefreshEnable(true);
        recycleview.setPushRefreshEnable(true);
//        recycleview.loadMore();
        recycleview.setFooterViewText("loading");
        recycleview.setColorSchemeResources(android.R.color.holo_red_dark, android.R.color.holo_blue_dark);
        recycleview.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() {
            @Override
            public void onRefresh() {
                recycleview.setRefreshing(true);
                getOkHttpAsyn(url, 2, handler);
                mAdapter.notifyDataSetChanged();


            }

            @Override
            public void onLoadMore() {
                getOkHttpAsyn(url, 3, handler);
                mAdapter.notifyDataSetChanged();

            }
        });
    }

    @Override
    public void loadData() {
        getOkHttpAsyn(url, 1, handler);
    }
}
 public void getOkHttpAsyn(String url, final int what, final Handler handler) {
        OkHttpUtils.get(url, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                // final Object bean= new Gson().fromJson(response.body().string(),Object.class);
                final String result = response.body().string();
                Message msg = Message.obtain();
                msg.obj = result;
                msg.arg1 = what;
                handler.sendMessage(msg);
            }
        });
    }

猜你喜欢

转载自zhengaihua.iteye.com/blog/2340070