最新版 BaseRecyclerViewAdapterHelper4:4.1.2 最简单的QuickViewHolder用法,最简洁的代码,复制可用

为了照顾新手,尽量详细,高手勿喷!!!
怕麻烦的话可以直接下载源码:https://download.csdn.net/download/ERP_LXKUN_JAK/88678044?spm=1001.2014.3001.5503

先看文件结构,是不是很简单

在这里插入图片描述

AndroidStudio2023导入方式:(旧版也一样,只是格式有一点区别而已)

1、在 build.gradle.kts(Module:app) 的 dependencies 中添加如需导入。

implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.2")  

在这里插入图片描述
2、添加如图代码

 maven { url = uri("https://www.jitpack.io") }

在这里插入图片描述
3、数据对象结构【TestData】,创建一个数据对象,这个可以自定义,这里测试用,就简单一点

package com.example.testquickviewholder;public class TestData {String data01;String data02;public String getData01() {return data01;}public void setData01(String data01) {this.data01 = data01;}public String getData02() {return data02;}public void setData02(String data02) {this.data02 = data02;}
}

4、【TestAdapter】Adapter列表适配器

package com.example.testquickviewholder;import android.content.Context;
import android.view.ViewGroup;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;import com.chad.library.adapter4.BaseQuickAdapter;
import com.chad.library.adapter4.viewholder.QuickViewHolder;public class TestAdapter extends BaseQuickAdapter<TestData, QuickViewHolder> {@Overrideprotected void onBindViewHolder(@NonNull QuickViewHolder quickViewHolder, int i, @Nullable TestData testData) {assert testData != null;quickViewHolder.setText(R.id.Txt_01, testData.data01);}@NonNull@Overrideprotected QuickViewHolder onCreateViewHolder(@NonNull Context context, @NonNull ViewGroup viewGroup, int i) {return new QuickViewHolder(R.layout.layout_item_test, viewGroup);}
}

5、主页面【MainActivity】

package com.example.testquickviewholder;import android.os.Bundle;
import android.view.View;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;import com.chad.library.adapter4.BaseQuickAdapter;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {private RecyclerView mRecyclerView;private TestAdapter mTestAdapter;private ArrayList<TestData> mTestData;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mRecyclerView = findViewById(R.id.Recycler_View);mRecyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this, 1, GridLayoutManager.VERTICAL, false));mTestData = new ArrayList<>();for (int i = 0; i < 10; i++) {TestData testData = new TestData();testData.setData01("setData01:" + i);testData.setData02("setData02:" + i);mTestData.add(testData);}mTestAdapter = new TestAdapter();mTestAdapter.addAll(mTestData);mRecyclerView.setAdapter(mTestAdapter);mTestAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener<TestData>() {@Overridepublic void onClick(@NonNull BaseQuickAdapter<TestData, ?> baseQuickAdapter, @NonNull View view, int i) {Toast("被点击的数据:" + mTestData.get(i).data01);}});mTestAdapter.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener<TestData>() {@Overridepublic boolean onLongClick(@NonNull BaseQuickAdapter<TestData, ?> baseQuickAdapter, @NonNull View view, int i) {Toast("被长按的数据:" + mTestData.get(i).data01);return false;}});}protected void Toast(String msg) {Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();}
}

6、主页面布局【activity_main】

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/Recycler_View"android:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout>

7、列表Item布局【layout_item_test】

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/Txt_01"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="#E6E6E6"android:gravity="center"android:padding="5dp"android:text="item" />
</LinearLayout>

认真一点,全部复制可用。
怕麻烦的话可以直接下载源码:下载源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch】学习记录分享10——PyTorchTextCNN用于文本分类处理

【Pytorch】学习记录分享10——PyTorchTextCNN用于文本分类处理 1. TextCNN用于文本分类2. 代码实现 1. TextCNN用于文本分类 具体流程&#xff1a; 2. 代码实现 # coding: UTF-8 import torch import torch.nn as nn import torch.nn.functional as F import numpy as np…

【C++】STL 容器 - set 集合容器 ⑦ ( 查找元素 - set#find 函数 | 获取元素个数 - set#count 函数 )

文章目录 一、查找元素 - set#find 函数1、函数原型 简介2、代码示例 - set#find 函数 二、获取元素个数 - set#count 函数1、函数原型 简介2、代码示例 - set#find 函数 一、查找元素 - set#find 函数 1、函数原型 简介 在 C 语言的 STL 标准模板库 , std::set 集合容器 是一个…

Flash、Ajax各自的优缺点,在使用中如何取舍

Flash 和 Ajax 都是用于 Web 开发的技术&#xff0c;各自有一些优缺点。在使用中取舍需要根据具体的需求和情况来决定。 flash 的优点包括&#xff1a; 动画和多媒体效果丰富&#xff1a;Flash 可以创建非常丰富的动画和多媒体效果&#xff0c;适合制作交互式内容和游戏。跨平…

【C#与Redis】--高级主题--Redis 哨兵

一、简介 1.1 哨兵的概述 哨兵&#xff08;Sentinel&#xff09;是 Redis 分布式系统中用于监控和管理多个 Redis 服务器的组件。它的主要目标是确保 Redis 系统的高可用性&#xff0c;通过实时监测主节点和从节点的状态&#xff0c;及时发现并自动处理故障&#xff0c;保证系…

数据分析硬核工具Origin各版本安装指南

下载链接 https://pan.baidu.com/s/12mENFtRFdNaLzVKmE6w_Uw?pwd0531 1.鼠标右击【Origin 2022(64bit)】压缩包&#xff08;win11及以上系统需先点击显示更多“选项”&#xff09;选择【解压到 Origin 2022(64bit)】。 2.双击打开解压后的【Origin 2022(64bit)】文件夹。 3.…

编程界的“魔术师”:Python中的一行代码艺术

标题&#xff1a; “成为编程界的“魔术师”&#xff1a;Python中的一行代码艺术” 编程的世界中&#xff0c;有一种被称为“一行代码魔术师”的存在。他们擅长用简洁、精炼的代码实现复杂的功能&#xff0c;就像变魔术一样令人惊叹。 Python作为一种高级编程语言&#xff0c…

数据被锁?被.mkp 勒索病毒攻击后的拯救行动

导言&#xff1a; 网络安全面临着越来越多的挑战&#xff0c;而.mallox勒索病毒则成为数字威胁中的一股强大势力。它的威胁不仅体现在其高度复杂的加密算法上&#xff0c;还表现在对受感染系统的深度渗透和数据的极大破坏上。以下是.mallox勒索病毒的主要威胁&#xff1a;如不…

Python学习 - 爬虫系统架构设计

主要业务流程 初始请求请求过滤器请求队列响应下载器数据解析器数据清洗器存储器 设计图 master slave&#xff1a;master控制队列&#xff0c;过滤&#xff0c;传递任务&#xff1b;slave负责执行 缺点&#xff1a;master和slave端交互数据频繁&#xff0c;slave的数据进出…

图文证明 牛顿-莱布尼茨公式

牛顿-莱布尼茨公式 牛顿-莱布尼茨公式是微积分中的基本定理之一&#xff0c;它描述了函数的导数和不定积分之间的关系。 该公式通常用来计算定积分。设函数f(x)在区间[a, b]上连续&#xff0c;且F(x)是f(x)在该区间上的一个原函数 即F’(x) f(x)。则牛顿-莱布尼茨公式表示为&…

【AIGC-图片生成视频系列-2】八仙过海,各显神通:AI生成视频相关汇总剖析

最近「图片生成视频系列」层出不穷&#xff0c;我拜读并结合实践&#xff08;对&#xff0c;就是手撕代码&#xff0c;有开源就撕&#xff09;&#xff0c;并对以下几篇文章的相似点以及关键点稍微做个总结&#xff1a; 一. 生成视频中图像的一致性 在图像生成视频的这个过程…

提升CSC加分项|高职教师赴新西兰惠灵顿维多利亚大学访学交流

S老师科研背景条件一般&#xff0c;担心无法获得邀请函及通过CSC审批。我们建议&#xff1a;1.以加强国际合作和跨学科合作的方式&#xff0c;增强高职院校的影响力&#xff0c;为CSC评审提供加分项&#xff1b;2.同时申报4月份的国家公派和5月份的西部/地方合作项目&#xff0…

Java进阶(第八期): Java中递归的的使用和递归解决一些算法问题 Java中的异常机制、异常的处理逻辑 自定义异常

文章目录 一、递归1.1 递归的介绍1.2 递归的简单练习1.3 图解递归执行流程&#xff1a;1.4 使用递归完成悲波那契数列1.5 猴子吃桃子问题 二、异常三 、异常的处理逻辑3.1 try catch 捕获异常3.2 throws抛出异常 四、自定义异常 Java进阶&#xff08;第八期&#xff09; 一、递…

2、gdb常用功能2

1.4、线程 程序避免不了涉及到多线程.常用指令如下. 命令简写形式说明info thread显示当前进程内所有线程信息thread 切换到num线程thread find 寻找regexp在gdb中的idinfo address 结合上述图片理解&#xff0c;第一列的id是gdb内部为线程排序的一个id&#xff0c;第三列中…

行人重识别(ReID)基础知识入门

这里写目录标题 1、ReID技术概述1.1 基本原理1.2 实现流程1.3 重识别存在的技术挑战 2、训练数据格式介绍 1、ReID技术概述 1.1 基本原理 ReID&#xff0c;全称Re-identification&#xff0c;目的是利用各种智能算法在图像数据库中找到与要搜索的目标相似的对象。ReID是图像检…

Eureka服务注册与发现

1. Eureka简介 Eureka采用了CS的设计架构&#xff0c;Eureka Server 作为服务注册功能的服务器&#xff0c;它是服务注册中心。而系统中的其他微服务&#xff0c;使用 Eureka的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系…

三个故事,谈谈小米汽车技术发布会

都说新年新气象&#xff0c;随着年末消费旺季到来&#xff0c;汽车市场越来越热闹了。 继蔚来12月23日公布旗舰车型ET9&#xff0c;华为26日发布问界M9&#xff0c;小米汽车首款量产车型SU7终于正式亮相。 12月28日&#xff0c;在小米汽车技术发布会上&#xff0c;小米创办人…

Go语言程序设计-第5章--函数

Go语言程序设计-第5章–函数 5.1 函数声明 每个函数声明都包含一个名字、一个形参列表、一个可选的返回列表以及函数体: func name(parameter-list) (result-list) {body }func add(x int, y int) int { return x y} func sub(x, y int) (z int) {z x - y; return} func f…

CCNP课程实验-Route_Path_Control_CFG

目录 实验条件网络拓朴需求 配置实现基础配置需求实现1.A---F所有区用Loopback模拟&#xff0c;地址格式为&#xff1a;XX.XX.XX.XX/32&#xff0c;其中X为路由器编号。根据拓扑宣告进对应协议。A1和A2区为特例&#xff0c;A1&#xff1a;55.55.55.0/24&#xff0c;A2&#xff…

【数学建模美赛M奖速成系列】Matplotlib绘图技巧(二)

Matplotlib绘图技巧&#xff08;二&#xff09; 写在前面2. 函数间区域填充函数fill_between()和fill()参数&#xff1a; 3. 散点图 scatter4. 直方图 hist5. 条形图 bar5.1 一个数据样本的条形图参数&#xff1a; 5.2 多个数据样本进行对比的直方图5.3 水平条形图参数 5.4 绘制…

Vue3-31-路由-RouterView的name属性的作用

作用描述 <router-view> 标签是用来渲染路由对应的组件的位置&#xff1b; 默认情况下&#xff0c;一个路由是只对应一个组件的。 但是&#xff0c;可以通过给 <router-view> 指定 name 属性的方式&#xff0c;实现同时渲染多个组件的效果。 这也叫做 命名视图。 注…