参考:https://www.jianshu.com/p/70316eb4e0f8

  1. 在app目录下的 build.gradle 中,添加
android {    ... dataBinding {        enabled = true    }
}新版本统一改为:
android {    ... buildFeatures {dataBinding true// for view binding:// viewBinding true}
}
  1. 在 xml 文件的最外层根布局,使用 … 标签(可以使用 alt + enter 的快捷键,选择 convert to data binding layout)
    原本的xml:
<?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"><TextViewandroid:id="@+id/tv_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

变更后的xml:

<?xml version="1.0" encoding="utf-8"?>
<layout 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"><data></data><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/tv_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
</layout>
  1. 在 xml 文件的data标签中,创建 标签,定义需要使用到的对象,如:
<layout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><data><import type="java.util.List" /><import type="java.util.Map" /><!--泛型的支持会在编译时期报红线,但是是可以直接运行的但是需要通过转义字符才行,如:<号用&lt表示;>号用&gt表示;--><variablename="list"type="List<String>" /><variablename="map"type="Map<String,Object>" /><variablename="array"type="String[]" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="15dp"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@{list[0]}" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@{list.get(1)}" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="@{map[`key0`]}" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@{map.get(`key1`)}" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="@{array[0]}" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@{array[1]}" /></LinearLayout>
</layout>
  1. 在Activity中初始化数据,设置这些变量
public class BasicActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityBasicBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_basic);List<String> list = new ArrayList<>();list.add("list1");list.add("list2");binding.setList(list);HashMap<String, Object> map = new HashMap<>();map.put("key0", "map_value0");map.put("key1", "map_value1");binding.setMap(map);String[] arrays = {"字符串1", "字符串2"};binding.setArray(arrays);}
}

DataBinding在RecyclerView Adapter中的使用

https://my.oschina.net/u/4356937/blog/3792207
https://www.jianshu.com/p/4d30efa6b500
https://cloud.tencent.com/developer/article/1200774

【Android JetPack】DataBinging使用相关推荐

  1. Android Jetpack架构组件之 Room(使用、源码篇)

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...

  2. Android Jetpack组件之Hilt使用

    前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. And ...

  3. Android Jetpack组件App Startup简析

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  4. Android Jetpack组件之WorkManger使用介绍

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  5. Android Jetpack组件之Navigation使用-源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  6. Android Jetpack组件之 Room使用-源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  7. Android Jetpack组件之 Paging使用-源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  8. Android Jetpack组件之 LiveData使用-源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  9. Android Jetpack组件之ViewModel使用

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  10. Android Jetpack 组件之 Lifecycle源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

最新文章

  1. iMeta:西农韦革宏团队焦硕等-土壤真菌驱动细菌群落的构建(全文翻译/PPT/视频解读)...
  2. ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境
  3. 工作中搜索页面搜索记录功能的封装(存储到本地)
  4. CyberLink ColorDirector Ultra(视频调色工具)中文版
  5. Zabbix 安装部署
  6. react组件放在数组中_为什么要在函数组件中使用React.memo?
  7. PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法
  8. java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>()的问题解决
  9. 外部工具连接SaaS模式云数仓MaxCompute 实战—— 数据库管理工具篇
  10. Visual Studio 2017 已知问题 Qamp;amp;A
  11. uva 1312——Cricket Field
  12. M1 Mac 档案的临时暂存区工具: Yoink
  13. Ubuntu18.04 orb-slam3编译出现的错误 undefined reference to symbol ‘_ZN3MPI8Datatype4FreeEv‘ libmpi_cxx.so
  14. matlab做神经网络的步骤,matlab建立神经网络模型
  15. hist 和imhist的区别
  16. 成功绩效评估面谈的八个步骤
  17. PS——证件照换底色的极简方法
  18. idea怎么进行c语言编程_idea编写c语言
  19. 基于Hadoop豆瓣电影数据分析(综合实验)
  20. linux 打开相机工具cheese/guvcview

热门文章

  1. 基于DOAS文件系统接口(DFS)暴露的SPDK块设备
  2. IPXX指的是什么?
  3. 三星手机语音测试软件,三星手机语音助手使用教程
  4. 显示器接口VGA、DVI、HDMI
  5. 程序员的小节日__回文日
  6. 基于STM32的多路电压测量设计方案
  7. shaiya 自定义属性卷轴
  8. gcc编译命令的常用选项——强烈推荐大家使用 -Wall 选项
  9. html比赛小作品源码,我的网页设计大赛参赛作品
  10. ngCordova插件的使用详解