万能适配器basequickadapter + recycleview实现单选并且默认选择第一个

1、首先,确保您已经添加了BaseQuickAdapter和RecyclerView的依赖项。您可以在项目的build.gradle文件中添加以下依赖项:

dependencies {implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'implementation 'androidx.recyclerview:recyclerview:1.2.1'
}

2、创建一个数据模型类来表示每个列表项的数据。例如,假设您有一个名为Item的数据类:

public class Item {private String name;private boolean isSelected;public Item(String name) {this.name = name;this.isSelected = false;}public String getName() {return name;}public boolean isSelected() {return isSelected;}public void setSelected(boolean selected) {isSelected = selected;}
}

3、创建一个Adapter类,继承自BaseQuickAdapter<Item, BaseViewHolder>。在Adapter中,您需要处理单选逻辑以及默认选择第一个项的逻辑:

public class ItemAdapter extends BaseQuickAdapter<Item, BaseViewHolder> {public ItemAdapter(@Nullable List<Item> data) {super(R.layout.item_layout, data);}@Overrideprotected void convert(BaseViewHolder helper, Item item) {helper.setText(R.id.text_view, item.getName());// 设置选中状态的背景色if (item.isSelected()) {helper.itemView.setBackgroundColor(ContextCompat.getColor(mContext, R.color.selected_color));} else {helper.itemView.setBackgroundColor(Color.TRANSPARENT);}}public void setItemSelected(int position) {for (int i = 0; i < getData().size(); i++) {getData().get(i).setSelected(i == position);}notifyDataSetChanged();}
}

4、在您的Activity或Fragment中,初始化RecyclerView和Adapter,并设置默认选择第一个项:

public class MainActivity extends AppCompatActivity {private RecyclerView recyclerView;private ItemAdapter adapter;private List<Item> itemList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recyclerView = findViewById(R.id.recycler_view);recyclerView.setLayoutManager(new LinearLayoutManager(this));// 初始化数据for (int i = 0; i < 10; i++) {itemList.add(new Item("Item " + (i + 1)));}// 创建Adapter并设置默认选中第一个项adapter = new ItemAdapter(itemList);adapter.setItemSelected(0);recyclerView.setAdapter(adapter);// 设置RecyclerView的点击事件adapter.setOnItemClickListener((adapter, view, position) -> {adapter.setSelected(position);});}
}

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

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

相关文章

C/C++ sscanf正则测试

分号分割&#xff0c;等号解析 #include <iostream> #include <string.h>typedef struct{char name[32];int priority; }codes_t;int codes_get(char* str, codes_t* codes){int i 0;char *ptr;std::cout<<"before strtok str: "<<str<&…

Claude 使用指南 | 可与GPT-4媲美的语言模型

本文全程干货&#xff0c;让你轻松使用上claude&#xff0c;这也是目前体验cluade的唯一途径&#xff01;废话不多说&#xff0c;直接上教程&#xff0c;cluade的能力不逊于GPT4&#xff0c;号称是ChatGPT4.0最强竞品。相对Chatgpt来说&#xff0c;Claude不仅是完全免费的&…

每个高级前端工程师都应该知道的前端布局

首发于公众号 大迁世界,欢迎关注。📝 每周一篇实用的前端文章 🛠️ 分享值得关注的开发工具 😜 分享个人创业过程中的趣事 快来免费体验ChatGpt plus版本的,我们出的钱 体验地址:https://chat.waixingyun.cn 可以加入网站底部技术群,一起找bug,另外新版作图神器已上线…

vue自定义指令来控制按钮权限

参考视频 在src下新建directives/has.js文件用来创建自定义指令 export default {bind(el, bindings) { // bind钩子函数,接收两个参数// console.log(指令绑定到元素上的时候);// 所有权限const permissions JSON.parse(localStorage.getItem(permissions));// 需要的权限c…

springboot集成kafka

创建工程 父工程pom 父工程做了子工程管理和包管理 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…

Java | 多线程综合练习

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 &#x1f334;前言&#x1f334;一、卖电影票1.题目2.分析3.代码 &#x1f334;二、送礼物1. 题目2. 分析3.代码 &#x1f334;三.打印奇数1. 题目2.…

深度解析NLP文本摘要技术:定义、应用与PyTorch实战

目录 1. 概述1.1 什么是文本摘要&#xff1f;1.2 为什么需要文本摘要&#xff1f; 2. 发展历程2.1 早期技术2.2 统计方法的崛起2.3 深度学习的应用2.4 文本摘要的演变趋势 3. 主要任务3.1 单文档摘要3.2 多文档摘要3.3 信息性摘要 vs. 背景摘要3.4 实时摘要 4. 主要类型4.1 抽取…

【Leetcode热题】打卡day1——10

目录 1、两数之和 - 哈希表 1、两数之和 - 哈希表 1. 两数之和 思路&#xff1a; 建立map&#xff0c;mp[nums[i]]i 存储值所对应的下标 顺序遍历每一个元素&#xff0c;先查找mp中是否存在与nums[i]匹配的值&#xff08;target-nums[i]&#xff09; 如果存在&#xff0c;则返…

【2023牛客多校训练营10】L Grayscale Confusion

L Grayscale Confusion 思路&#xff1a;题解 | #Grayscale Confusion# 大概相当于是一个构造题&#xff0c;将(r, g, b)映射为函数值&#xff0c;满足大小关系以及最初两组(c0和c1)rgb的值相等 f(r, g, b) x*r y*g z*b x y z 1c0和c1有大小&#xff0c;无法满足&…

伊朗市场最全开发攻略

伊朗是是古代波斯帝国的继承者&#xff0c;是中东和北非区第二大经济体&#xff0c;紧随沙特阿拉伯之后。它拥有庞大的人口、丰富的自然资源和逐渐增长的实力。也是世界上拥有最大储油量的国家之一&#xff0c;石油、天然气和铜等战略资源得天独厚。 南非的拉马福萨在2023年金…

Python爬虫自动切换爬虫ip的完美方案

在进行网络爬虫时&#xff0c;经常会遇到需要切换爬虫ip的情况&#xff0c;以绕过限制或保护自己的爬虫请求。今天&#xff0c;我将为你介绍Python爬虫中自动切换爬虫ip的终极方案&#xff0c;让你的爬虫更加高效稳定。 步骤一&#xff1a;准备爬虫ip池 首先&#xff0c;你需要…

设计模式之十:状态模式

状态模式通过改变对象内部的状态来帮助对象控制自己的行为。 这是一张状态图&#xff0c;其中每个圆圈都是一个状态。 最简单&#xff0c;第一反应的实现就是使用一个变量来控制状态值&#xff0c;并在方法内书写条件代码来处理不同情况。 package headfirst.designpatterns.…

为什么有了IP地址还需要MAC地址?

上午好&#xff0c;我的网工朋友。 今天想和你聊聊Mac地址。 到底啥是Mac地址&#xff1f;官方直译是媒体存取控制位址&#xff0c;是一个用来确认网络设备位置的位址。 在OSI模型中&#xff0c;第三层网络层负责IP地址&#xff0c;第二层数据链路层则负责MAC位址。 MAC地址…

达梦数据库阻塞与死锁查询

一、数据库阻塞 1.查询被阻塞的信息和引起阻塞的信息 SELECT SYSDATE STATTIME, DATEDIFF(SS, S1.LAST_SEND_TIME, SYSDATE) SS , 被阻塞的信息 WT , S1.SESS_ID WT_SESS_ID, S1.SQL_TEXT WT_SQL_TEXT, S1.STATE WT_STATE, S1.TRX_ID WT_TRX_ID, S1.USER_NAME WT_USER_NAME, …

Linux小总结

1, 只想查看目录的权限 加 -d 参数 ls -ld directory2, 获得当前的时间戳 Time_current"date "%Y%m%d"_"%H%M%S""3&#xff0c; 杀死进程 kill -9 pid4&#xff0c;显示文件大小 ls -l /etc/passwd -rw-r--r-- 1 root root 3355 Jun 23 20…

NSS [HNCTF 2022 WEEK2]ohmywordpress(CVE-2022-0760)

NSS [HNCTF 2022 WEEK2]ohmywordpress&#xff08;CVE-2022-0760&#xff09; 题目描述&#xff1a;flag在数据库里面。 开题&#xff1a; 顺着按钮一直点下去会发现出现一个按钮叫安装WordPress 安装完之后的界面&#xff0c;有一个搜索框。 F12看看network。 又出现了这个…

android 12动态开关USB网络共享

这个是采用发送广播的形式&#xff0c;自己写app软件发送广播就可以实现此功能 ’frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java 导入依赖 import android.bluetooth.BluetoothAdapter; import android.net.TetheringManager; imp…

ATF(TF-A) EL3 SPMC威胁模型-安全检测与评估

安全之安全(security)博客目录导读 ATF(TF-A) 威胁模型汇总 目录 一、简介 二、评估目标 1、数据流图 三、威胁分析 1、信任边界 2、资产 3、威胁代理 4、威胁类型 5、威胁评估 5.1 端点在直接请求/响应调用中模拟发送方FF-A ID 5.2 端点在直接请求/响应调用中模拟…

XUbuntu22.04之查找进程号pidof、pgrep总结(一百九十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

amlogic 多wifi 多bluetooh 兼容方案

WiFi部分: vendor/amlogic/common/wifi_bt/wifi/configs/wifi.mk 或者 hardware/amlogic/wifi/configs/wifi.mk ################################################################################## realtek wifi ifneq ($(filter rtl8188eu rtl8188ftv rtl8192eu rtl8…