`
zhengaihua
  • 浏览: 21135 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

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);
            }
        });
    }

 

分享到:
评论

相关推荐

    RecycleView上拉刷新下拉加载更多

    本Demo主要展示了`RecycleView`的基本用法,包括如何实现上拉刷新、下拉加载更多功能,以及如何添加Item的增删动画、单击事件和长按事件。 首先,`RecycleView`的核心优势在于其高效的视图复用机制。当数据集很大时...

    上拉加载下拉刷新的RecycleView

    支持瀑布流,单列表,网格,使用见我博客

    recycleview上拉加载下拉刷新

    在本项目"PullLoadMoreRecyclerView"中,作者WuXiaolong实现了一个具有上拉加载更多和下拉刷新功能的RecyclerView,这是移动应用中常见的交互模式,特别是对于数据流无尽或者需要实时更新的内容。 1. **上拉加载更...

    RecycleView上拉加载下拉刷新EmptyView的封装

    本主题将深入探讨如何针对RecyclerView进行上拉加载、下拉刷新以及设置EmptyView的封装。 一、RecyclerView的上拉加载(Load More) 上拉加载功能通常用于处理数据分页,当用户滚动到列表底部时,会自动请求更多...

    RecycleView-上拉加载-下拉刷新

    本文将深入探讨RecycleView的上拉加载(Load More)和下拉刷新(Pull to Refresh)功能,以及如何实现这些特性。 ## 1. RecycleView简介 RecycleView通过复用视图项来优化内存使用,只有当前可视的item才会被实例化...

    recycleView超好用下拉刷新和上拉加载

    在Android开发中,`RecyclerView`是一个非常重要的组件,它用于高效地展示大量数据列表,而`PTLRecyclerView-master`这个库则进一步扩展了`RecyclerView`的功能,提供了下拉刷新和上拉加载更多这两种常见的交互模式...

    (Android) RecyclerView实现下拉刷新和上拉加载更多

    这篇文章主要为大家详细介绍了Android RecyclerView实现下拉刷新和上拉加载更多,具有一定的参考价值,感兴趣的小伙伴们可以下载参考一下! (Android)五分钟让你轻松学会下拉刷新和上拉加载更多。文章地址 ...

    Android代码-LiveCircle

    3.SwipeRefreshLayout 自定义模式 实现上拉刷新 下拉加载更多(有缺陷,没有下拉加载更多的提示,后期会尝试通过自定义RecycleView实现上拉刷新 下拉加载更多) 4.RecycleView ItemTouchHelper.Callback 实现Item的...

    Recyclerview下拉刷新上拉加载及adapter封装

    本主题将深入探讨如何实现RecyclerView的下拉刷新和上拉加载功能,以及如何进行Adapter的封装。 首先,RecyclerView的基本用法包括创建布局管理器(LayoutManager),如线性布局管理器(LinearLayoutManager)、...

    recycleview实现下拉刷新上拉自动加载

    本文将深入探讨如何在RecyclerView中实现下拉刷新和上拉自动加载的功能。 首先,RecyclerView的优势在于它的高效性能。由于其采用的ViewHolder机制,RecyclerView能够复用视图,显著减少了内存分配和视图创建的开销...

    简单好用的上拉加载下拉刷新 BaseRecyclerViewAdapterHelper

    添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代) 设置自定义的加载更多布局 添加分组(随心定义分组头部) 自定义不同的item类型(简单配置、无需重写额外方法) 设置空布局(比Listview的...

    Materal风格之recycleView下拉刷新以及上拉加载更多

    本篇将探讨如何在Material Design风格下,为RecyclerView实现下拉刷新和上拉加载更多的功能。 首先,我们要理解RecyclerView的基本结构。RecyclerView由Adapter、LayoutManager和ViewHolder组成。Adapter负责填充...

    带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载

    带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 博客地址:http://blog.csdn.net/lowprofile_coding/article/details/51321896

    recycleView下拉刷新上拉加载,不足一屏时footview隐藏

    而“recycleView下拉刷新上拉加载,不足一屏时footview隐藏”这个主题主要涉及到如何在RecyclerView中实现下拉刷新和上拉加载更多的功能,并且在内容不足一屏时隐藏提示视图(FootView)。 首先,下拉刷新通常使用...

    ListView上拉刷新和加载更多动画

    在描述中提到的“改造XListview”,XListView是一个开源的Android库,它为ListView提供了上拉刷新和下拉加载更多的功能。XListView是基于PullToRefresh开源项目改进的,增加了底部加载更多的特性,使得开发者能够更...

    Recyclerview的下拉刷新和上拉加载

    本文将详细讲解如何实现RecyclerView的下拉刷新和上拉加载功能,这两种功能是移动应用中常见的用户体验设计,使得用户可以轻松获取更多数据。 一、下拉刷新(Pull-to-Refresh) 下拉刷新允许用户通过在...

    RecyclerView下拉刷新上拉加载封装

    本项目针对RecyclerView进行了下拉刷新和上拉加载功能的封装,同时加入了吸附动画,提高了用户体验。以下是对这些知识点的详细说明: 1. **RecyclerView**: RecyclerView是Android SDK中的一个视图组件,它替代了...

    Android RecyclerView实现了下拉刷新和上拉加载

    在现代应用中,下拉刷新和上拉加载是必不可少的功能,它们提高了用户体验,允许用户在不离开当前界面的情况下更新数据或加载更多内容。本篇文章将深入探讨如何在RecyclerView中实现这两个功能。 一、RecyclerView...

    recycleview添加google上拉、下拉刷新添加header

    本教程将详细介绍如何在RecyclerView中集成Google官方的SwipeRefreshLayout,实现上拉刷新和下拉加载更多功能,并添加自定义的header和footer布局,以增强用户体验。 首先,我们需要引入Google的`design`库,它包含...

    RecycleView+CardView实现瀑布流(类in界面效果)

    为了使效果更接近in,你可能还需要添加一些额外的功能,比如图片加载库(如Glide或Picasso)来加载网络图片,或者添加下拉刷新和上拉加载更多功能。同时,可以根据需要调整CardView的阴影效果、圆角大小等样式属性,...

Global site tag (gtag.js) - Google Analytics