最新版 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.hqwc.cn/news/309168.html

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

相关文章

用anaconda下载安装pytorch1.8.2+cudatoolkit11.1

用anaconda下载安装pytorch1.8.1cudatoolkit11.1 设置清华镜像下载&#xff1a; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda con…

小程序面试题 | 17.精选小程序面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【2023】通过docker安装hadoop以及常见报错

&#x1f4bb;目录 1、准备2、安装镜像2.1、创建centos-ssh的镜像2.2、创建hadoop的镜像 3、配置ssh网络3.1、搭建同一网段的网络3.2、配置host实现互相之间可以免密登陆3.3、查看是否成功 4、安装配置Hadoop4.1、添加存储文件夹4.2、添加指定配置4.3、同步数据 5、测试启动5.1…

Linux:apache优化(3)—— 页面缓存时间

作用&#xff1a;通过 mod_expires 模块配置 Apache&#xff0c;使网页能在客户端浏览器缓存一段时间&#xff0c;以避免重复请求&#xff0c;减轻服务端工作压力。启用 mod_expires 模块后&#xff0c;会自动生成页面头部信息中的 Expires 标签和 CacheControl 标签&#xff0…

华为商城秒杀时加密验证 device_data 的算法研究

前言 之前华为商城放出 Mate60 手机时, 想给自己和家人抢购一两台&#xff0c;手动刷了好几天无果后&#xff0c;决定尝试编写程序&#xff0c;直接发送 POST 请求来抢。通过抓包和简单重放发送后&#xff0c;始终不成功。仔细研究&#xff0c;发现 Cookie 中有一个名为 devic…

Solana主流钱包盘点和评测:Phantom,Bitget钱包,Ledger等

Solana绝对是今年加密货币界的大红人&#xff01;大家都在热烈讨论这个项目&#xff0c;想象它会给加密世界的未来带来怎样的变革。是不是觉得新晋的加密爱好者们都很酷&#xff1f;他们正迈出探索这个领域的第一步&#xff0c;寻找合适的钱包。无论是准备长期持有Solana&#…

【第4期】Springboot集成阿里云对象存储OSS+Vue+Iview文件上传组件

本期简介 文件上传是非常常见的功能&#xff0c;本期要实现的功能是将文件存储到阿里云分布式对象存储OSS中&#xff0c;这样做的好处是随便哪里都可以方便的展示出该图片&#xff0c;并且图片以链接形式在客户端浏览器渲染&#xff0c;流量不会经过后台&#xff0c;降低后台压…

数据库——创建存储过程、函数和触发器安装phpmyadmin

1.实验内容及原理 1. 在 Windows 系统中安装 VMWare 虚拟机&#xff0c;在 VMWare 中安装 Ubuntu 系统,并在 Ubuntu 中搭建 LAMP 实验环境。 2. 使用 MySQL 进行一些基本操作&#xff1a; &#xff08;1&#xff09;登录 MySQL&#xff0c;在 MySQL 中创建用户&#xff0c;…

【CCF-B】院士主编,通过率70%,国人友好,审稿慢

01 期刊概况 Frontiers of Computer Science 【出版社】Springer&#xff0c; Co-publication with Higher Education Press 【ISSN】2095-2228 【ISSN】2095-2236 【检索情况】SCI&EI双检 【WOS收录年份】2012年 【期刊官网】 https://www.springer.com/journal/11…

C# WPF上位机开发(Web API联调)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多时候&#xff0c;客户需要开发的不仅仅是一个上位机系统&#xff0c;它还有其他很多配套的系统或设备&#xff0c;比如物流小车、立库、数字孪…

JavaScript中实现页面跳转的几种常用方法

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍在JavaScript中实现页面跳转的几种常用方法以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xff0c;友友们有任何问题…

JavaScript基础知识点总结:从零开始学习JavaScript(六)

本章内容主要让小伙伴们自主练习 &#xff0c;建议大家先自己写出来答案&#xff0c;然后对照我的&#xff01;&#xff08;题不难主要培养自己的编程思维&#xff01;&#xff01;&#xff01;&#xff09; 如果大家感感兴趣也可以去看&#xff1a; &#x1f389;博客主页&…