先看一下demo结构

activity_main.xml中加入一个RecyclerView让它充满全屏;

layout_item.xml中加入一个TextView和ImgView;

然后新建Bean实体类

Recyvlerview_Adapte中的代码

package com.example.wh.test;import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import java.util.List;/*** Created by Wh on 2019/1/17.*/
//继承recyclerview.adapter,<>中是ViewHolder,viewholder是缓存用的,也就是说将view holder的缓存加到<>中
public class Recyvlerview_Adapter extends RecyclerView.Adapter<Recyvlerview_Adapter.ViewHolder>{private List<Bean> beanList;//构造方法,将beanList1赋给beanListpublic Recyvlerview_Adapter(List<Bean> beanList1) {this.beanList=beanList1;}class ViewHolder extends RecyclerView.ViewHolder{  //用于缓存的ViewHolderTextView myTv;ImageView myImg;View myView;  //自定义View用于recyclerview的点击事件public ViewHolder(View itemView) {super(itemView);myView=itemView;//将itemView赋给myViewmyImg=itemView.findViewById(R.id.img);myTv=itemView.findViewById(R.id.tv);}}@NonNull@Override//创建viewholder实例public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_item,parent,false);//在此方法中先加载布局final ViewHolder viewHolder=new ViewHolder(view);//将布局传入viewholder对象中//点击item的监听器viewHolder.myView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int postion=viewHolder.getAdapterPosition();//获取到当前点击的是哪一个itemBean bean=beanList.get(postion);//将当前点击的item赋给实体类对象Toast.makeText(v.getContext(), "你动了"+bean.getMyName()+"一下", Toast.LENGTH_LONG).show();}});//点击item中某一个控件的监听器viewHolder.myImg.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int postion=viewHolder.getAdapterPosition();Bean bean=beanList.get(postion);Toast.makeText(v.getContext(), "你动了"+bean.getMyName()+"的图片一下", Toast.LENGTH_LONG).show();}});return viewHolder;//将带有布局的viewholder对象返回}@Override//用于对Recyclerview的子项(item)进行赋值public void onBindViewHolder(@NonNull ViewHolder holder, int position) {Bean bean=beanList.get(position);//创建实体类对象 并拿到当前的子项(item)holder.myTv.setText(bean.getMyName());//设置当前的子项(item)holder.myImg.setImageResource(bean.getMyImg());}@Override//告诉recyclerview一共有多少子项(item)public int getItemCount() {return beanList.size();}}

Recyvlerview_Adapter继承了RecyclerView.Adapter所以要重写3个方法:
onCreateViewHolder:用于创建ViewHolder实例
**onBindViewHolder:**用于对RecyclerView的子项(item)赋值
**getItemCount:**告诉RecyclerView有多少子项(item)

RecyclerView的点击事件:需要自定义View ,然后将ViewHolder的view传给自定义的View对象


最后看MainActivity:

效果图:



本人是初学小白,写博客主要是为了自己的查看复习,内容如有不准确,还请帮忙指出,多多谅解!

Recyclerview 小demo相关推荐

  1. TabLayout+ViewPager+Fragmet+RecyclerView结合的小demo

    前两天想熟悉一下tablayout,所以就弄了个特别简单的tablayout+viewpager+fragmet+recyclerview结合的小demo.虽然特别简单,但还是遇到了不少问题. tab ...

  2. 金融新手投标模块布局小Demo

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. android jsoup简书,jsoup爬虫简书首页数据做个小Demo

    昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固,比如java反射注解,知道一点就是说不出来,很尴尬... 生命不止,学习不止啊 之前那个项目 Q ...

  4. 运用vue.js写的表格小demo

    2019独角兽企业重金招聘Python工程师标准>>> 最近在学习vue.js,我把工作中项目里面的一个小实例用vue.js重构了下,写成一个小demo,巩固自己所学,并与大家分享, ...

  5. 入门Leaflet之小Demo

    入门 Leaflet 之小 Demo 写在前面 ---- WebGIS 开发基础之 Leaflet GIS 基本概念:GIS.Map.Layer.Feature.Geometry.Symbol.Dat ...

  6. 云服务器apache mysql php_服务器配置教程:阿里云服务器安装PHP环境(附PHP+MySQL+Apache后台小Demo)...

    前言 搭建Apache HTTP Server往往都会安装PHP环境,因为很多人都使用PHP做web.其实相对我而言,我是用PHP做后台.主要是因为我是移动端方向:做iOS和Android.往往需要通 ...

  7. Nancy之基于Self Hosting的补充小Demo

    原文:Nancy之基于Self Hosting的补充小Demo 前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with ...

  8. 从一个小demo开始,体验“API经济”的大魅力

    写在前面 "API经济"这个词是越来越火了,但是"API经济"具体指的是什么,相信很多人还没有个明确的认识.不过今天我可不打算长篇大论的去讲解一些概念,我们就以 ...

  9. 结束python服务器进程_服务器端后台持续执行python程序小demo

    冰先生:python小脚本,爬天气预报并定时发邮件提醒(适合小情侣的甜蜜打开方式)​zhuanlan.zhihu.com 上一篇写了做个可以发送邮件的小demo,这一篇呢我们来谈一谈如何让他更加方便的 ...

最新文章

  1. css和JavaScript
  2. 数学与当代生命科学(吴家睿)
  3. mysql数据库入门教程(6):数据的增删改
  4. Dreamweaver PHP代码护眼配色方案
  5. MySQL Infobright 数据仓库快速安装笔记[转]
  6. Unity3D学习笔记之九为场景添加细节(二)
  7. Xamarin中国技术社区及BXUG官网上线啦
  8. [CSS] Scale on Hover with Transition
  9. Ajax 编程基础(一)
  10. html div 子元素 过多 卡顿,CSS不定高元素transition动画的解决方案
  11. Linux查找命令find、loacte、whereis、which、type梳理
  12. 【数学】Floating-Point Hazard
  13. 404、500、502等HTTP状态码介绍
  14. markdown插入图片、音频视频
  15. ASC2 E Quantization Problem DP
  16. linux之stat
  17. mysql里有sqlfront_使用SQL-Front启动MySQL8.0报错
  18. mysql覆盖索引和回表
  19. flowplayer播放需求
  20. [常用工具] Python视频处理库VidGear使用指北

热门文章

  1. 【基础】ARM芯片上电取第一条指令流程
  2. 【淘宝】图片放大 代码
  3. 鸿蒙系统的通知栏怎么没有静音,微信7.0.0没有消息提示音怎么解决?微信通知栏不显示消息的解决...
  4. 牛客网之SQL---持续更新
  5. GitHub 的 Fork 是什么意思?
  6. AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘
  7. 如何运营一家数据标注公司 (基础架构篇)
  8. Win10 LTSC 2021的BUG处理
  9. DASH推流及播放流程
  10. 用python画一只小狗