【JetPack】数据绑定 DataBinding 简介 ( 使用要求 | Gradle 版本 | 定义数据类 | 定义数据绑定布局 | Activity 数据绑定 | 绑定类生成规则 )(一)

简介: 【JetPack】数据绑定 DataBinding 简介 ( 使用要求 | Gradle 版本 | 定义数据类 | 定义数据绑定布局 | Activity 数据绑定 | 绑定类生成规则 )(一)

I . 数据绑定 简介


1 . 数据绑定作用 : 不使用 Java 代码 , 直接在 layout 布局文件 中完成组件的 文本 , 图片 等数据 的设置 ;



2 . 数据绑定 与 视图绑定 : 视图绑定仅仅是替代了 Java 代码中的 findViewById ( ) 操作 , 比视图绑定更进一步 , 在替代上述操作的基础上 , 还为其设置了具体的值 ; 数据绑定比视图绑定功能更强大 ;




II . 数据绑定 使用前提 ( 环境支持 )


1 . 数据绑定 ( DataBinding ) 使用前提 :



① 数据绑定最小兼容版本 : Android 4.0 , API 版本 14 ;


② Gradle 插件版本 : 1.5.0 以上的版本 ;



2 . Gradle 插件版本 与 Gradle 版本 对应关系 : 推荐使用当前最新配置 ( 2020/04/15 ) , 最新 Gradle 插件版本是 3.6.1 , 最新 Gradle 版本是 5.6.4 ;



① Gradle 插件版本 : 在 Project 下的 build.gradle 中配置 , 如下配置的是 3.6.1 版本的 Gradle 插件 ;

image.png


② Gradle 版本 : 在 Project 下的 gradle/wrapper/gradle-wrapper.properties 文件中配置 , 如下配置的是 5.6.4 版本的 Gradle ;


image.png



3 . Gradle 插件版本 与 Gradle 版本对应 关系 : 如果对应错了 , Android 应用无法编译 ;


Gradle 插件版本 Gradle 版本

1.0.0 - 1.1.3 2.2.1 - 2.3

1.2.0 - 1.3.1 2.2.1 - 2.9

1.5.0 2.2.1 - 2.13

2.0.0 - 2.1.2 2.10 - 2.13

2.1.3 - 2.2.3 2.14.1+

2.3.0+ 3.3+

3.0.0+ 4.1+

3.1.0+ 4.4+

3.2.0 - 3.2.1 4.6+

3.3.0 - 3.3.2 4.10.1+

3.4.0 - 3.4.1 5.1.1+

3.5.0+ 5.4.1-5.6.4



III . 数据绑定 使用流程 一 : 启用数据绑定


启用数据绑定 : 在 Module 的 build.gradle 构建脚本中 的 android 中配置如下代码 :


/** 启用数据绑定 */
dataBinding {
    enabled = true
}


IV . 数据绑定 使用流程 二 : 定义数据类


定义数据类 :


package kim.hsl.db
/** 视图绑定数据类 */
data class Student (var name:String, var age:Int)



V . 数据绑定 使用流程 三 : 定义数据绑定布局


1 . 定义根标签及命名空间 : 定义 <layout> 根标签 , 并且将布局文件的命名空间定义在该标签中 ;


<?xml version="1.0" encoding="utf-8"?>
<!-- 根标签是 layout, 将根布局的命名空间都拷贝到根标签中 -->
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
</layout>



2 . 定义对象数据标签 : 使用 <data> 标签 , 在标签中定义 <variable> 字标签 , 在 <variable> 标签中使用 name 属性定义变量名 , type 属性定义类的 包名.类名 全路径类型名称 ;


如下 : 定义 kim.hsl.db.Student 类的对象 student , 之后就使用 student 变量名来调用类中的字段 , 如 student.name 获取对象的 name 属性 ;


<?xml version="1.0" encoding="utf-8"?>
<!-- 根标签是 layout, 将根布局的命名空间都拷贝到根标签中 -->
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <!-- data 标签中设置要绑定的对象名称 和 对应的类名 -->
    <data>
        <variable name="student" type="kim.hsl.db.Student"/>
    </data>
</layout>


目录
相关文章
|
9月前
|
Java 开发工具 Android开发
Cocos Creator 2.4.6 Android Gradle 版本升级为 6.5.1(插件4.1.0)
Cocos Creator 2.4.6 Android Gradle 版本升级为 6.5.1(插件4.1.0)
245 1
|
JavaScript Java Maven
|
Android开发
Android Studio中修改gradle插件版本和Gradle版本
Android项目中,我们一般要设置gradle插件版本和gradle版本。 项目根目录下的build.gradle文件中,通过classpath可以指定gradle插件的版本。
|
2月前
|
缓存 Java API
build.gradle文件介绍,gradle版本对应
build.gradle文件介绍,gradle版本对应
77 0
|
9月前
|
Cloud Native Java Go
解决 Spring Boot 和 Gradle Java 版本兼容性问题:A problem occurred configuring root project ‘demo1‘. > Could n
解决 Spring Boot 和 Gradle Java 版本兼容性问题:A problem occurred configuring root project ‘demo1‘. > Could n
584 0
|
2月前
|
Java 测试技术 API
云效流水线构建gradle项目失败提示gradle版本过低如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
|
7月前
EMAS平台不支持Gradle 8.0以上版本
EMAS平台不支持Gradle 8.0以上版本
51 7
|
9月前
|
Android开发 Kotlin 容器
Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?(上)
Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?(上)
74 1
|
9月前
|
XML API Android开发
Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?(下)
Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?(下)
89 0
|
12月前
|
缓存 数据可视化 Java
Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?
Gradle 作为官方主推的构建系统,目前已经深度应用于 Android 的多个技术体系中,例如组件化开发、产物构建、单元测试等。可见,要成为 Android 高级工程师 Gradle 是必须掌握的知识点。
153 0
Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?