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
- PullLoadMoreRecyclerView下拉刷新上拉加载+点击事件
- pullloadmorerecyclerview实现recycleview上拉加载,下拉刷新
- RecyclerView实现上拉刷新,下拉加载,item点击事件
- PullRecyclerView上拉刷新下拉加载点击事件
- okhhtp + recyclerview + 上拉刷新下拉加载 + 点击事件
- 第三方开源库:下拉刷新和上拉加载更多:PullLoadMoreRecyclerView + CommonPullToRefresh + SpringView+。。。
- RecyclerView的点击事件,下拉刷新,上拉加载(Android5.0)
- RecyclerView使用详解一代替ListView(点击事件,添加头布局,上拉刷新下拉加载)
- RecyclerView原生的上拉加载与下拉刷新及点击监听事件
- RecyclerView下拉刷新上拉加载+点击监听
- retrofit+RecyclerView+SwipeRefreshLayout下拉刷新上拉加载+item点击
- XLRecyclerView的列表下拉刷新、上拉刷新、预加载、设置EmptyView、Item点击和长按事件
- 上拉加载 下拉刷新
- 下拉刷新 * 上拉加载
- 上拉刷新 下拉加载
- 下拉刷新,上拉加载
- 上拉刷新下拉加载
- 下拉刷新,上拉加载
- leetcode169: Majority Element
- MATLAB中获取一个文件夹下所有文件夹的名字
- 简单的JQ横排响应式轮播图
- poj 3928 难度:一般
- MOOC清华《面向对象程序设计》第8章:装饰模式实验
- PullLoadMoreRecyclerView下拉刷新上拉加载+点击事件
- Intellij Idea的编译和调试快捷键
- 动态库、静态库、运行时库、引入库之间的区别
- 数学运算 计算
- 反射:PropertyInfo、FieldInfo和MemberInfo的区别
- matlab set函数
- 第二周项目0-“输出一段话”
- 使用Junit做参数化测试
- Python的继承方法