PullLoadMoreRecyclerView下拉刷新上拉加载+点击事件

来源:互联网 发布:淘宝订单系统设计 编辑:程序博客网 时间:2024/06/06 03:58
依赖:compile 'com.wuxiaolong.pullloadmorerecyclerview:library:1.0.4'activity类public class MainActivity extends AppCompatActivity {    private PullLoadMoreRecyclerView recycler;    private int page=1;    private Handler handler=new Handler();    private Handler handler2=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what){                case 0:                    String obj = (String) msg.obj;                    Gson gson=new Gson();                    YueData yueData = gson.fromJson(obj, YueData.class);                    List<YueData.DataBean> data = yueData.getData();                    Log.i("daa",data.get(0).getHeadImg());                    if (page==1){                        list = new ArrayList<>();                    }                    for (int i=0;i<data.size();i++){                        list.add(data.get(i));                    }                    dataAdapter(list);                    break;            }        }    };    private List<YueData.DataBean> list;    private void dataAdapter(List<YueData.DataBean> list) {        RecyclerViewAdapter adapter = null;        if (adapter==null){            adapter = new RecyclerViewAdapter(list,this);            recycler.setAdapter(adapter);        }        else {            adapter.notifyDataSetChanged();        }        adapter.setOnRrecyclerViewItemClickListener(new RecyclerViewAdapter.OnRrecyclerViewItemClickListener() {            @Override            public void onRecyclerViewItemClick(int position) {                Toast.makeText(MainActivity.this, "点击"+position, Toast.LENGTH_SHORT).show();            }        });        adapter.setOnRecyclerViewLongItemClickListener(new RecyclerViewAdapter.OnRecyclerViewLongItemClickListener() {            @Override            public void onRecyclerViewLongItemClick(int position) {                Toast.makeText(MainActivity.this, "长按"+position, Toast.LENGTH_SHORT).show();            }        });    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initId();        recycler.setLinearLayout();        recycler.setPullRefreshEnable(true);        recycler.setPushRefreshEnable(true);        recycler.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() {            @Override            public void onRefresh() {                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                        page=1;                        recycler.setPullLoadMoreCompleted();                    }                },2000);            }            @Override            public void onLoadMore() {                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                        page++;                        initData();                        recycler.setPullLoadMoreCompleted();                    }                },2000);            }        });        boolean netWork = NetWorkUtils.isNetWork(this);        if (!netWork){            recreate();            Toast.makeText(this, "没网络", Toast.LENGTH_SHORT).show();        }        initData();    }    private void initId() {        recycler = (PullLoadMoreRecyclerView) findViewById(R.id.pullload);    }    private void initData() {        String path="http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page="+page;        OkHttp3Utils.doGet(path, new Callback() {            @Override            public void onFailure(Call call, IOException e) {}            @Override            public void onResponse(Call call, Response response) throws IOException {                String json = response.body().string();                Message message=new Message();                message.what=0;                message.obj=json;                handler2.sendMessage(message);            }        });    }}adapter适配器public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {    private List<YueData.DataBean> data;    private Context context;    public RecyclerViewAdapter(List<YueData.DataBean> data, Context context) {        this.data = data;        this.context = context;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item, parent, false);        final ViewHolder viewHolder=new ViewHolder(view);        //使用view的条目点击事件        view.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //自己获取position                int position = viewHolder.getLayoutPosition();                //设置监听                if (listener != null) {                    listener.onRecyclerViewItemClick(position);                }            }        });        //使用view的长按事件        view.setOnLongClickListener(new View.OnLongClickListener() {            @Override            public boolean onLongClick(View v) {                //自己获取position                int position = viewHolder.getLayoutPosition();                //设置监听                if (longListener != null) {                    longListener.onRecyclerViewLongItemClick(position);                }                //true代表消费事件 不继续传递                return true;            }        });        return viewHolder;    }    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        holder.title.setText(data.get(position).getTitle());        Glide.with(context).load(data.get(position).getHeadImg()).into(holder.img);    }    private OnRrecyclerViewItemClickListener listener;    //定义接口 和抽象方法    public interface OnRrecyclerViewItemClickListener {        void onRecyclerViewItemClick(int position);    }    //提供设置监听的方法    public void setOnRrecyclerViewItemClickListener(OnRrecyclerViewItemClickListener listener) {        this.listener = listener;    }    /**     * 条目长按     *///声明接口    private OnRecyclerViewLongItemClickListener longListener;    //定义接口 和抽象方法    public interface OnRecyclerViewLongItemClickListener {        void onRecyclerViewLongItemClick(int position);    }    //提供设置监听的方法    public void setOnRecyclerViewLongItemClickListener(OnRecyclerViewLongItemClickListener longListener) {        this.longListener = longListener;    }    @Override    public int getItemCount() {        return data.size();    }    public class ViewHolder extends RecyclerView.ViewHolder{        private TextView title;        private ImageView img;        public ViewHolder(View itemView) {            super(itemView);            title=itemView.findViewById(R.id.title_data);            img=itemView.findViewById(R.id.img_data);        }    }
阅读全文
0 0
原创粉丝点击