[databinding]RecyclerView+databinding+kotlin

一.数据:

User:

class User {

    var firstname: ObservableField<String> = ObservableField()
    var lastname: ObservableField<String> = ObservableField()
    var isAdult: ObservableBoolean = ObservableBoolean()
    var displayName: ObservableField<String> = ObservableField()
    var age: ObservableField<Int> = ObservableField()

}

 

二.item view:

recycler_view_item.xml:

<layout>
    <data>
        <variable name="user"
            type="com.m.databindingdemo.model.User"/>
    </data>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_marginBottom="10dp"
        android:background="@android:color/darker_gray"
        android:gravity="center_vertical"
        android:orientation="vertical">
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{user.firstname}"/>
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{String.valueOf(user.age)}"/>
    </LinearLayout>
</layout>

 

三.Adapter:

class RecyclerViewAdapter(private var userList: MutableList<User>) : RecyclerView.Adapter<RecyclerViewAdapter.TestViewHolder>() {

    override fun getItemCount(): Int  = userList.size

    override fun onBindViewHolder(holder: TestViewHolder?, position: Int) {
        holder?.bind(userList[position])
    }

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): TestViewHolder {
        val binding = DataBindingUtil.inflate<RecyclerViewItemBinding>(
                LayoutInflater.from(parent?.context),
                R.layout.recycler_view_item,
                parent,
                false
        )
        return TestViewHolder(binding)
    }


    class TestViewHolder(private val binding: RecyclerViewItemBinding) 
                   : ViewHolder(binding.root) {
        fun bind(data: User) {
              //方法一:
//            binding.setVariable(BR.user,data)
            //方法二:
            binding.user = data
            binding.executePendingBindings()
        }
    }
}

 

四.Activity:

class RecycleViewActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_recycle_view)

        val layoutManager = LinearLayoutManager(this)
        recycler_view.layoutManager = layoutManager
        recycler_view.adapter = RecyclerViewAdapter(initUsers())

    }

    private fun initUsers() : MutableList<User>{
        val userList = mutableListOf<User>()
        for (i in 1..5) {
            var user = User()
            user.firstname.set("name $i")
            user.age.set(i)
            userList.add(user)
        }
        return userList
    }
}

 

参考:

1.java+RecyclerView:https://www.cnblogs.com/DoNetCoder/p/7243878.html?utm_source=tuicool&utm_medium=referral

2.kotlin+RecyclerView:https://github.com/JetBrains/kotlin-examples/blob/master/gradle/android-databinding/app/src/main/java/org/example/kotlin/databinding/OtherActivity.kt

Android & Kotlin:基于Room、Kotlin协程的MVVM app 本篇主要介绍Android系统通过Room进行CRUD操作,以及使用kotlin协程的处理方法。 0. 效果展示 1. 添加依赖 注释使用kapt apply plugin: 'kotlin-kapt' 1.1 lifecycle 通过这个可以获取其他组建生命周期变化 这里注释使用kapt,选着相应的注释依赖 def lifecycle_version = "2.2.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewm 阅读详情

相关推荐

全面掌握Kotlin与Android列表界面设计

在现代Android开发中,已成为处理可滚动列表数据的首选组件。相较于ListView提供了更高的灵活性和效率,特别是在自定义适配器的使用上。本章将深入探讨的核心概念、优势以及如何高效地实现和使用自定义适配器。通过自定义适配器提供了极高的灵活性。开发者可以创建具有复杂布局和多样化交互的列表。DataBinding是一种库,允许开发者在布局XML文件中直接绑定布局中的UI组件与数据源。这一机制可以减少大量的样板代码,提高应用的响应性和可维护性。

weixin_42575505的博客 773

使用kotlin语言书写listView和recyclerView,并且使用databinding实现逻辑与视图分离

本文章实现了listView和RecyclerView数据的修改和增加,同时运用了databinding进行数据绑定以及事件绑定 先看一张效果图 现在就贴上源码 首先在app下的build.gradle下添加相关依赖,值得注意的是databinding是添加到android代码段的 //databinding dataBinding { enabled = true } //recycleView implementation 'androidx.

Android_data的博客 1063

kotlin+listView+recyclerView+DataBinding

这个demo实现了数据和视图的完全分离,并且支持修改item和增加item,我在其中用了一些设计思想,有兴趣的同学可以下载看看。

基于kotlin的,DataBinding+Recycleview,并实现item的子控件的点击事件

基于kotlin的,DataBinding+Recycleview,并实现item的子控件的点击事件 核心代码如下:Activity class MainActivity : AppCompatActivity() { val studentInfo: Student? = null lateinit var binding: ActivityMainBinding lateinit var recyclerView: RecyclerView var users: M

一个黑曼巴的博客 2424

Android-一个kotlin编写的登录和recycleview列表实现

一个kotlin编写的登录和recycleview列表实现

Android代码-AndroidMVVM框架写在kotlin中

KBinding Android MVVM framework write in kotlin, base on anko, simple but powerful. Contents BindingMode OneWay: Binding from model to view TwoWay: Binding from model to view and view to model OneWayToSource: Binding from view to model OneTime: Binding from model to view, and auto release after first emit Simple Binding verticalLayout { editText { bind { text("name", mode = TwoWay) } } button { bind { click("hello") } } } class SimpleViewModel() : ViewModel() {

kotlin中RecyclerView+Databinding的使用

RecyclerView用于列表的显示,大家都很熟悉了,这里主要介绍下RecyclerView在kotlin中结合Databinding的使用 1.创建项目后需要在gradle中引入: implementation'com.android.support:recyclerview-v7:28.0.0-alpha1' 否则当你使用RecyclerView时会发现没办法引入。 2.布局文件:...

认真做事,开心生活 4691

android-recyclerview-binding:RecyclerView +数据绑定+ LiveData示例

RecyclerView +数据绑定示例 简单样本 直接将LiveData与数据绑定一起使用 <? xml version = " 1.0 " encoding = " utf-8 " ?> < layout xss=removed xss=removed> < data> < variable xss=removed xss=removed> </ d

【安卓开发】Kotlin编写DataBinding+RecyclerView组合

Kotlin语言,将DataBinding和RecyclerView结合 开头错误自查 Unresolved reference: BR 在模块的build.gradle中添加Kotlin-apt插件 plugins { id 'kotlin-kapt' } kapt { generateStubs = true } 不废话,直接代码 数据类 data class TempText(val mText: String) adapter class RecyclerViewLearnAd

weixin_44544354的博客 2456

VS Code配置Java开发环境避坑指南:从JDK到Spring Boot插件全流程

本文详细介绍了在VS Code中配置Java开发环境的完整流程,涵盖JDK选择、环境变量配置、核心插件安装、构建工具优化及Spring Boot项目专项设置。特别针对常见问题提供避坑方案,帮助开发者快速搭建高效稳定的开发环境,提升Java和Spring Boot开发效率。

weixin_28839699的博客 980

T型三电平关管顺序要求

摘要: T型三电平拓扑中,IGBT关断必须遵循“外管先关、内管后关”的时序,否则易导致器件损坏。正常导通时,外管与内管共同分担电压;正确关断时,外管先关使电流经内管续流至中点,避免电压过冲;若内管先关,电流路径被强制切断,杂散电感引发高压尖峰击穿器件。这一时序本质是为电流提供低应力续流路径,需通过硬件或软件严格保障。

yun0804的博客 2382

[安卓开发]kotlin编写 RecyclerView 结合 DataBinding 进行 双向绑定

kotlin编写的RecyclerView,使用DataBinding进行双向绑定 实现了 BaseObservable 的数据类,其实也没啥必要,就一个String 具体效果就是修改一侧RecyclerView数据,另一侧也会同步变化 Unresolved reference: BR ->这个错误可以见我的上篇博客 直接上代码 数据类 class UseData() : BaseObservable() { var useData: String = "" @Bi

weixin_44544354的博客 3939

Windows下的Geant4安装教程

本教程将从0开始展示在Windows下如何安装Geant4,包括各种辅助工具(QT、Cmake、Visual Studio)的下载安装,环境变量的配置,以及example的生成等。

weixin_49065278的博客 4109

Kotlin结合DataBinding简单封装一个RecyclerView的Adapter

这是项目总结的第二篇,上一篇在这:模仿Google News的TabLayout 在 GeekNews 中我尝试使用 DataBinding 来简化代码,本来是使用 BRVAH 这个优秀的开源框架作为基础 RecyclerView 的 Adapter使用的,但是写的过程中发现在 Adapter 里每次要写一堆样板代码,想着既然是实验项目,就干脆自己封装一个好了。 本篇blog主要是记录一下...

weixin_34059951的博客 1117

基于CPCC_S_TASK_LIST_MAINTAIN的工艺路线组件批量分配实战与避坑指南

本文详细解析了SAP PP模块中基于CPCC_S_TASK_LIST_MAINTAIN函数实现工艺路线组件批量分配的实战技巧与避坑指南。针对批量分配的核心挑战,提供了参数配置、BAPI协同使用、Excel导入等解决方案,并分享了大容量数据处理优化经验,帮助用户高效完成工艺路线组件分配任务。

weixin_33563728的博客 306

华为OD机试新系统真题-谁没交卷(Java /Py/C++/Go/C/Js)

华为OD机试 新系统真题【谁没交卷】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【谁没交卷】多语言题解。

qq_45776114的博客 422

Kotlin中使用DataBinding绑定RecyclerView并数据两列显示

说明:在xml中import数据实体类DeviceData,可以直接取数据对控件进行内容填充。说明:适配器中使用dataBinding进行数据绑定,代码简洁。

aidou1314的博客 412

文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)

本文将手把手教会你使用jieba库进行中文分词和去除停用词,这是学会文本分析的必经之路!

m0_64336780的博客 4万+

Kotlin,结合DataBinding实现recyclerview

app下的build.gradle加入 android{ ... dataBinding{ enabled = true } ... } 项目的g radle.propeties加入 android.databinding.enableVZ = true Item布局文件 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk

qq_41904106的博客 757

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

YOLOv11官方代码库与预训练模型下载:介绍Ultralytics官方GitHub及模型权重(yolov11n.pt, yolov11s.pt等)

本文介绍了Ultralytics官方GitHub仓库和YOLOv11预训练模型。Ultralytics仓库是YOLO系列算法的官方实现,包含YOLOv11最新代码、预训练模型、文档和工具。仓库采用清晰的代码结构和活跃的更新策略,支持全流程开发。YOLOv11提供了5种不同规模的模型变体(YOLOv11n/s/m/l/x),在精度、速度和模型大小间权衡,适用于从移动设备到高精度检测等不同场景。各模型在COCO数据集上预训练,可直接使用或微调,满足多样化应用需求。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 5832

使用笔记:DataBinding在Kotlin中的使用

使用笔记:DataBinding在Kotlin中的使用 DataBinding是一个实现数据和UI绑定的框架,同时也是实现MVVM模式所依赖的工具。 今天文章主要记录一下DataBinding在Kotlin中的简单使用 Demo下载 配置 在应用的build.gradle文件中添加以下代码: android { ... dataBinding { enabled = true } ... } 基本使用功能 替代findViewById 布局文件根节点必

yuantian_shenhai的博客 6065

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android面试题 之 Kotlin DataBinding 图片加载和绑定RecyclerView

Android面试题 之 Kotlin DataBinding 图片加载和绑定RecyclerView

AntDream的程序世界 413

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

databinding简单使用(java+kotlin)

databinding 基本使用,点击事件,自定义属性,recyclerview使用 页面是一个RecyclerView,Item为图片 + 姓名 + 年龄 配置 android { ... dataBinding { enabled true } } dependencies { ... implementation 'com.github.bumptec...

tj297202234的专栏 603

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Android 开发中的 DataBinding 和 ViewBinding 高级封装与优化指南

从减少样板代码、提升性能,到结合 Kotlin 特性(如反射、泛型、扩展函数)和依赖注入框架(如 Hilt),我们提供了全面的优化方案。无论你是初学者还是经验丰富的开发者,本文都能帮助你提升代码的可读性、复用性和可维护性,打造更高效的 Android 应用。这些优化方案结合了 Kotlin 的高级特性(如反射、泛型、扩展函数)和依赖注入框架,能够大幅提升代码质量和开发体验。本文深入探讨了如何在 Android 开发中通过高级封装和优化技术,简化。封装到一个工具类中,并通过扩展函数提供更简洁的调用方式。

tangweiguo03051987的博客 744

Kotlin封装的Recyclerview的通用adapter,绝对简单好用

Kotlin封装的Recyclerview的通用adapter 介绍 Kotlin封装的Recyclerview的两种通用adapter KtBaseAdapter:普通的通用Adapter KtDBBaseAdapter:结合DataBinding的通用Adapter,使用了binding的好处是,可以不用自定义Adapter了。 这两种Adapter都是只能展示单一数据类型,也就是一种布局...

lohas的博客 2496
上一篇: (转)[IOS]Timer定时器
下一篇: [databinding]自定义Adapter
jameskaron
博客等级 码龄20年 31粉丝 663原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值