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); } }); }
相关推荐
本Demo主要展示了`RecycleView`的基本用法,包括如何实现上拉刷新、下拉加载更多功能,以及如何添加Item的增删动画、单击事件和长按事件。 首先,`RecycleView`的核心优势在于其高效的视图复用机制。当数据集很大时...
支持瀑布流,单列表,网格,使用见我博客
在本项目"PullLoadMoreRecyclerView"中,作者WuXiaolong实现了一个具有上拉加载更多和下拉刷新功能的RecyclerView,这是移动应用中常见的交互模式,特别是对于数据流无尽或者需要实时更新的内容。 1. **上拉加载更...
本主题将深入探讨如何针对RecyclerView进行上拉加载、下拉刷新以及设置EmptyView的封装。 一、RecyclerView的上拉加载(Load More) 上拉加载功能通常用于处理数据分页,当用户滚动到列表底部时,会自动请求更多...
本文将深入探讨RecycleView的上拉加载(Load More)和下拉刷新(Pull to Refresh)功能,以及如何实现这些特性。 ## 1. RecycleView简介 RecycleView通过复用视图项来优化内存使用,只有当前可视的item才会被实例化...
在Android开发中,`RecyclerView`是一个非常重要的组件,它用于高效地展示大量数据列表,而`PTLRecyclerView-master`这个库则进一步扩展了`RecyclerView`的功能,提供了下拉刷新和上拉加载更多这两种常见的交互模式...
这篇文章主要为大家详细介绍了Android RecyclerView实现下拉刷新和上拉加载更多,具有一定的参考价值,感兴趣的小伙伴们可以下载参考一下! (Android)五分钟让你轻松学会下拉刷新和上拉加载更多。文章地址 ...
3.SwipeRefreshLayout 自定义模式 实现上拉刷新 下拉加载更多(有缺陷,没有下拉加载更多的提示,后期会尝试通过自定义RecycleView实现上拉刷新 下拉加载更多) 4.RecycleView ItemTouchHelper.Callback 实现Item的...
本主题将深入探讨如何实现RecyclerView的下拉刷新和上拉加载功能,以及如何进行Adapter的封装。 首先,RecyclerView的基本用法包括创建布局管理器(LayoutManager),如线性布局管理器(LinearLayoutManager)、...
本文将深入探讨如何在RecyclerView中实现下拉刷新和上拉自动加载的功能。 首先,RecyclerView的优势在于它的高效性能。由于其采用的ViewHolder机制,RecyclerView能够复用视图,显著减少了内存分配和视图创建的开销...
添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代) 设置自定义的加载更多布局 添加分组(随心定义分组头部) 自定义不同的item类型(简单配置、无需重写额外方法) 设置空布局(比Listview的...
本篇将探讨如何在Material Design风格下,为RecyclerView实现下拉刷新和上拉加载更多的功能。 首先,我们要理解RecyclerView的基本结构。RecyclerView由Adapter、LayoutManager和ViewHolder组成。Adapter负责填充...
带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 博客地址:http://blog.csdn.net/lowprofile_coding/article/details/51321896
而“recycleView下拉刷新上拉加载,不足一屏时footview隐藏”这个主题主要涉及到如何在RecyclerView中实现下拉刷新和上拉加载更多的功能,并且在内容不足一屏时隐藏提示视图(FootView)。 首先,下拉刷新通常使用...
在描述中提到的“改造XListview”,XListView是一个开源的Android库,它为ListView提供了上拉刷新和下拉加载更多的功能。XListView是基于PullToRefresh开源项目改进的,增加了底部加载更多的特性,使得开发者能够更...
本文将详细讲解如何实现RecyclerView的下拉刷新和上拉加载功能,这两种功能是移动应用中常见的用户体验设计,使得用户可以轻松获取更多数据。 一、下拉刷新(Pull-to-Refresh) 下拉刷新允许用户通过在...
本项目针对RecyclerView进行了下拉刷新和上拉加载功能的封装,同时加入了吸附动画,提高了用户体验。以下是对这些知识点的详细说明: 1. **RecyclerView**: RecyclerView是Android SDK中的一个视图组件,它替代了...
在现代应用中,下拉刷新和上拉加载是必不可少的功能,它们提高了用户体验,允许用户在不离开当前界面的情况下更新数据或加载更多内容。本篇文章将深入探讨如何在RecyclerView中实现这两个功能。 一、RecyclerView...
本教程将详细介绍如何在RecyclerView中集成Google官方的SwipeRefreshLayout,实现上拉刷新和下拉加载更多功能,并添加自定义的header和footer布局,以增强用户体验。 首先,我们需要引入Google的`design`库,它包含...
为了使效果更接近in,你可能还需要添加一些额外的功能,比如图片加载库(如Glide或Picasso)来加载网络图片,或者添加下拉刷新和上拉加载更多功能。同时,可以根据需要调整CardView的阴影效果、圆角大小等样式属性,...