对recyclerview的简单封装

recyclerview 适配器封装 recyclerview 适配器封装,在加载recyclerview 列表的活动或碎片中,通过调用ItemAdaptaer中相应方法,对recyclerview列表进行删除,添加,清空,初始化操作 立即下载

不多说,先直接上代码,看一下封装后的使用,避免写重复过多的代码(直接翻译为java代码也是一样的原理)

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var adapter = RecycleAdapter(this,initData()!! ,R.layout.recyclerview_item)
        recycler_view.layoutManager = LinearLayoutManager(this)
        recycler_view.adapter = adapter
        adapter.setOnBindViewHolder(object : RecycleAdapter.BindViewHolder<TestVar>{
            override fun onBind(p0: RecycleAdapter.MyViewHolder?, p1: Int, content: TestVar) {
                var test = p0!!.getView(R.id.name) as TextView
                var id = p0.getView(R.id.num) as TextView
                test.text = content.name
                id.setOnClickListener {   //添加监听事件
                    Log.d("tag","ididiididiid--------"+id)
                }
            }
        })
        adapter.addData(initData()!!)//再次添加数据
    }

    private fun initData(): ArrayList<TestVar>? {
        var list=ArrayList<TestVar>()
        for (i in 0..50){
            var test = TestVar(i.toString(),"测试"+i,R.mipmap.ic_launcher)
            list.add(i,test)
        }
        Log.d("tag","list.size------"+ list.size)
        return list
    }
}

recycleAdapter类

class RecycleAdapter<T> : RecyclerView.Adapter<RecycleAdapter.MyViewHolder> {
    var context:Context
    var list:ArrayList<T>
    var layout:Int? = null
    var bind:BindViewHolder<T>? = null
    constructor(context:Context,list:ArrayList<T>,layout:Int){
        this.context = context
        this.list = list
        this.layout = layout
        notifyDataSetChanged()
    }
    fun setOnBindViewHolder(bind:BindViewHolder<T>){
        this.bind = bind
    }

    fun addData(list:ArrayList<T>){
        if (list != null){
            this.list.addAll(list)
        }else{
            this.list = list
        }
        notifyDataSetChanged()
    }

    override fun onBindViewHolder(p0: MyViewHolder?, p1: Int) {
        bind?.onBind(p0,p1,list[p1])
    }

    override fun onCreateViewHolder(p0: ViewGroup?, p1: Int): MyViewHolder {
        var res = context.resources
        return  MyViewHolder(LayoutInflater.from(context).inflate(res.getLayout(layout!!), p0, false))

    }

    override fun getItemCount(): Int {
        return list.size
    }

    class MyViewHolder : RecyclerView.ViewHolder {
        var view:View? =null
       constructor(view:View) : super(view) {
           this.view = view
        }
        fun getView(id:Int):View{
            return view!!.findViewById(id)
        }

    }
    interface BindViewHolder<in T>{
        fun onBind(p0: MyViewHolder?, p1: Int,content : T)
    }
}

其他类型的封装原理也是一样的,如果能有更好的封装,希望童鞋们能相互交流(正在寻找更好的封装中。。)

RecyclerView Adapter 优雅封装 - CustomerAdapter,一个Adapter搞定所有列表 立即下载

相关推荐

Android-Androidrecyclerview的一个封装

Android recyclerview的一个封装

封装Recyclerview,使用起来超级方便

每次写recyclerview的时候需要写很多的代码,因此对其进行封装,调用的时候两三行代码搞定。

oy的博客 1082

完美封装RecyclerView所有功能

RecyclerView的所有布局管理器,自定义分割线,侧滑删除,上下移动,点击事件

真实项目运用-RecyclerView封装

原文链接:从零开始搭建android框架系列 项目地址:MVPCommon 前言很久没有发表从零开始搭建android框架系列这个系列的文章了 。由于最近工作确实有点忙碌,也在脚踏实地的花时间研究android方面自己很多不懂的东西。但是写博客确实是一个坚持不懈和自我提高的过程,也希望在保持文章更新的同时能够保持文章的质量 。之前翻译了一些文章,有兴趣的小伙伴可以去看一下。今天这篇文章来谈一谈

安东尼的博客 1万+

手把手教你用PLECS仿真BUCK数字电源(含DSP代码实现)

本文详细介绍了如何利用PLECS仿真软件与Visual Studio 2022搭建高保真数字电源开发环境,手把手指导从BUCK电路建模、编写硬件感知的C控制算法到参数调优的全过程。重点阐述了通过DLL接口实现软件在环仿真,模拟DSP的ADC/PWM时序,并将验证后的代码无缝迁移至TI C2000系列DSP,构建从仿真到固件的完整数字电源开发闭环,显著提升开发效率与一次成功率。

oo7890的博客 395

[南大ICS-PA2]PA2 - 简单复杂的机器:冯诺依曼计算机系统

mips32和riscv32的指令长度只有32位, 因此它们不能像x86那样, 把C代码中的32位常数直接编码到一条指令中. 思考一下, mips32和riscv32应该如何解决这个问题?加载立即数到寄存器的高20位,然后便可以是哟给你标准的立即指令来创建32位常量。在程序分析领域中,静态指令是指程序代码中的指令,动态指令是指程序运行过程中的指令,例如对于一下指令序列。位域,在小端机器上,先定义的在每个字节的低位,后定义的在每个字节的高位。,这是处理非法指令的宏,其定义在。指令,而下一条动态指令则是。

qq_42474104的博客 928

Android RecyclerView —— 适配器封装探索

Android RecyclerView —— 适配器封装探索 RecyclerView 适配器的编写 RecyclerView 如果需要填充数据,就必须使用到适配器。在一般情况下,我们定义一个适配器只需要定义一个类,然后集成 RecyclerView.Adapter 类,然后实现齐总的抽象的方法即可,如下,实现一个简单的适配器: public class MyAdapter extends Re...

ITRenj的博客 1671

【KDD2024】ShapeFormer:用于多元时间序列分类的Shapelet Transformer

多元时间序列分类(MTSC)因其在现实世界中的广泛应用而吸引了大量研究关注。最近,Transformer在MTSC中取得了先进的性能。然而,

m0_52597077的博客 4747

RecyclerView Adapter简单封装

前言       今天是新年第一天,本来打算在上一年的最后一天写下来的,但是由于玩的时间长了一点,所以今天才写,算是在新的一年开一个好头,新年新气象嘛!       至于为什么要写这个文章呐!由于项目中以前都是用ListView实现的列表,很多东西都已经习惯化了,每次都是由的新的模块或者功能才使用RecyclerView,因此一直都没有完整的总结一遍,这次也是在一个新的项目中,准备完全采用Recyc

freeCode 2599

向量数据库安全实战:从Embedding反推到检索越权的全链路防护

随着RAG应用在企业中的普及,向量数据库已成为知识库系统的核心组件。但许多团队对向量数据的安全认知仍停留在传统数据库的账号密码、网络隔离和磁盘加密上。事实上,向量化并非加密,而是一种有损压缩的语义映射,向量本身可以被反推模型还原出原文关键信息,形成高保真的语义泄露通道。同时,相似度检索的模糊匹配特性打破了传统行列权限模型,使得越权检索和成员推断攻击成为新的安全威胁。理解这些原理,有助于企业在数据采集、向量化、索引构建、检索查询等环节构建分层防护体系,包括脱敏、扰动、过滤下推、网关控制等手段。本文从基础概念出

weixin_29323551的博客 259

8.2 发展趋

分子泵技术正处在一个快速变革的时代,面对日益增长的应用需求和不断涌现的技术挑战,其发展呈现出多元化、智能化和高度集成化的趋势。这些发展趋势不仅代表着技术创新的方向,也预示着分子泵在未来工业体系中将要扮演的更加重要的角色。

技术工作者 115

Android RecyclerView适配器简单封装,使用方便、简洁

最近不是很忙写点东西,一来自己笔记,二来跟大家分享 我们在做项目的时候为了方便常常会引入一些开源的框架,但是本人觉得有些框架功能太多或者太过复杂,不利于自己项目维护或者杀鸡用牛刀。我本人还是比较热衷于使用系统原生的方式来实现,但也要适当的进行封装。下面讲我对RecyclerView的简单使用封装分享给大家。直接上代码吧!! 1、定义的adapter基类 package com.app.ba...

weixin_40929353的博客 1043

[AI] 嵌入模型选择:bge / text-embedding-3 / Jina Embeddings 对比与选型指南

摘要: 本文对比了BGE-M3、OpenAI和Jina三种主流嵌入模型在语言覆盖、性能、延迟、维度和成本等维度的差异。BGE-M3适合中文场景,本地部署成本低;OpenAI API多语能力强但依赖网络;Jina在多语表现突出但需关注商用许可。测试显示BGE-M3本地延迟3-6ms,OpenAI API延迟200-600ms。选型建议:隐私场景选BGE本地部署,多语低维护选OpenAI,高精度选Jina。部署时需注意批处理优化、向量库压缩和商用许可等问题,建议建立评测指标并监控关键指标。

每日出拳老爷子的博客 428

RecyclerView的简单封装记录

@TOC 1. 2. 参考材料

wodongx123的博客 498

AUTOSAR从入门到精通-【自动驾驶】特斯拉全自动驾驶(FSD)

特斯拉全自动驾驶系统(Full-Self Driving,简称FSD)是特斯拉公司开发的高级驾驶辅助系统,旨在通过神经网络技术实现环境感知与车辆控制,在驾驶员监督下完成导航、转向、变道、泊车等操作。‌ 该系统自2021年发布Beta测试版以来持续迭代,最新版本为2025年10月推出的v14版本。‌FSD v14版本基于端到端神经网络架构,取代了传统代码逻辑,通过数百万视频片段训练模型,以模仿人类驾驶决策。‌ 其功能覆盖住宅区街道、城市道路及高速公路,支持交通信号识别、自动变道和环岛通行等场景。

getusushu的博客 571

(王道408考研数据结构)第二章线性表-第一节:线性表的定义和基本操作

文章目录一:线性表的定义二:线性表的基本操作 一:线性表的定义 线性表(Linear List):零个或多个数据元素的有限序列 元素之间是有顺序的 若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他元素都有且只有一个前驱和后继 线性表强调有限,“所有的整数按递增次序排列”很明显不是线性表 线性表可以表示为 L=(a1,a1,...,ai+1,...,an)L=(a_{1},a_{1},...,a_{i+1},...,a_{n})L=(a1​,a1​,...,ai+1​,...,an​) a

快乐江湖的博客 3705

RecyclerView.Adapter 的简单封装

这两天再写一个例子的时候使用了RecyclerView,为了方便使用就对RecyclerView.Adapter 进行了简单的封装。首先是写了一个BaseAdapter 类,继承了RecyclerView.Adapter”’ public abstract class BaseAdapter extends RecyclerView.Adapter< BaseViewHolder > {”

DragonFangQy 447

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

recyclerView的简单封装

更新一下,好久没更新了,现在的使用方式巨简单 Dependency compile 'com.lynn.library:simple-recyclerview:0.1.1' example 1、  不再需要关注viewType,使用时仅需将layout和viewholder的class类型注册进adapter即可,对于同一种数据类型有不同布局时,需要实现Mult

m190607070的专栏 426

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RecyclerView与ViewBinding结合简单封装

RecyclerView与ViewBinding结合简单封装 先进行BaseRecyclerViewAdapter抽象封装 //简单的封装 单布局 多布局 复用ViewHolder public abstract class BaseRecyclerViewAdapter<V> extends RecyclerView.Adapter<BaseRecyclerViewAdapter.ViewHolder> { protected ArrayList&l

陈进陆 3684

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RecyclerView 使用的简单封装

本 Demo 主要是对网络请求分页加载数据做的一个简易的封装,实现了如下功能: 1,RecyclerView 滑动到底部时加载下一页 2,ItemView 和它内部View的点击事件 3,Item 的选中效果如下: 使用方法: 1,继承 BaseNetFragment 2,实现 onLoadingData(int pageIndex),getRecyclerItemView(

技术笔记 575

RecyclerView 的简单封装

1 前言最近在学习Material Design设计,首当其冲就是学习RecyclerView,参考了下Hongyang自己对RecyclerView的ViewHolder与Adapter做了下简单的封装。下面,废话不多说,直接上干货。2 ViewHolder的封装ViewHolder在RecyclerView中的作用主要就是用来缓存我们每一个Item对应的View视图的,我们在Adapter中主要

带你装逼带你飞的专栏 666

封装一个简单的RecyclerView.Adapter

Google推出控件RecyclerView推出以后。ListView逐渐被RecyclerView取代。 那么RecyclerView 和ListView相比有哪些优点呢? RecylerView封装了viewholder的回收复用,也就是说RecylerView标准化了ViewHolder,编写Adapter面向的是ViewHolder而不再是View了,复用的逻辑被封装...

qq_42838759的博客 378

Android RecyclerView简单封装

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33882452的博客 193

对RecyclerView的简单封装使用

import android.support.annotation.IdRes; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7....

qq_39130977的博客 215

简单封装RecyclerView的Adapter

项目的开发中会经常使用的RecyclerView用来做列表数据的展示,但是不能每次都写一次Adapter,现在就先对常规展示的adapter做一个封装。 主要思想:封装一些常规性动作,至于不确定的动作字节暴露给子类实现 package com.recyclerviewdemo.adapter; import android.content.Context;import andr

qq_30587885的博客 343

RecyclerView 上拉加载的简单封装

先看效果: 网上有很多这类得框架,不过在自己的项目只用到上拉加载的功能,所以自己封装一个简单点的。主要依赖BaseRecyPRAdapter这类public abstract class BaseRecyPRAdapter<T> extends RecyclerView.Adapter<BaseRecyPRAdapter.BaseViewHolder> { private static f

desireyao的专栏 415
上一篇: 在Android中使用kotlin(recyclerview的使用)
下一篇: Android studio 3.0上进行多渠道打包遇到的问题
small_technical
博客等级 码龄11年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值