数据的绑定好处这里就不多说了,今天谈一谈 android 上的数据绑定了,也就是如何实现 MVVM 模式的。我们今天介绍一下 android 原生提供 databinding 来实现 MVVM 模式的。

首先我们要将我们布局(也就是视图)对应到一个数据模型,一个视图对应一个数据模型,也可以对应多个数据模型

Android 中的数据绑定(1)_第1张图片

要使用 android 的 databing 我们需要做一些准备工作,在 build.gradle 中添加 dataBinding 中添加 enabled = true ,来添加 databinding 功能。

Android 中的数据绑定(1)_第2张图片 Android 中的数据绑定(1)_第3张图片

看一看我们是如何让视图与数据建立关系的

Android 中的数据绑定(1)_第4张图片

我们用 layout 将linearLayout包括起来然后我们xmlns 什么都从原来的布局标签中移动到layout中。然后在 data 标签中添加一些与数据相关的标签。import 标签可以引入一些在数据绑定时用到的类,这里我们用到显示视图和隐藏数据 view.GONE 和 view.VISIBLE ,所以我们这里引用了 view 类。

这里的 variable 对应一个数据模型,name 为在 layout 使用绑定的数据模型的别名,type 就是这个别名对应的数据模型的类,类需要包括包名。

Android 中的数据绑定(1)_第5张图片

这里绑定格式为 @{prod.name}

Android 中的数据绑定(1)_第6张图片

在 Product 类中我们有对应名称,这样我们就完成一半的工作。返回到我们的 Activity 类中。通过 compile 实现数据绑定。 

编译过程自动生成一个ActivityDemoABinding 看名字,他是根据一定规则从 DemoAActivity 生成的,这个类不用自己创建,系统自动生成,如果没有我们,我们需要 rebuild project 一下,就有了

在 activity 我们需要Activity 的绑定对象与数据 product 对象绑定,然后我们知道如果要双向绑定我们还需要监控值的变化来反映到到视图上,我们需要对要监控的数据模型的字段 getter 上加 @Bindable 注解,然后在 setter 上中 notifyPropertyChange(BR.字段名)当该字段发生变化时发出通知。

如果我们需要的绑定的属性在系统并没有提供,我需要使用@BindingAdapter 来实现,合理示例就是自己定义个加载图片的属性给标签ImageView

Android 中的数据绑定(1)_第7张图片 Android 中的数据绑定(1)_第8张图片

数据绑定内容很多今天就分享到这里吧,休息一会儿

Android 中的数据绑定(1)_第9张图片

更多相关文章

  1. android之SharedPreferences进行数据存储
  2. Android中数据存储——文件存储数据
  3. Android 图片缩放-Matrix
  4. Android 开发中Parcel存储类型和数据容器
  5. 在android中使用Post方式提交数据
  6. Android 获取远程图片与本地图片缓存

随机推荐

  1. Android数据库升级
  2. Android开发规范(编码+性能+UI)
  3. Android下uid与多用户释疑(一)
  4. 移动设备操作系统知识点简摘又名我的期末
  5. Android系统架构分析 和 Android应用程序
  6. 有关Android线程的学习
  7. 学习Android从0开始之背景篇-Android系统
  8. android的init实例
  9. Android存储数据的三种方式
  10. Android(安卓)原生页面同H5交互