android数据绑定,Android 中的数据绑定(1)

本文介绍了在Android上使用原生databinding实现MVVM模式的方法。首先要将布局对应到数据模型,在build.gradle中添加功能,通过特定方式让视图与数据建立关系,编译自动生成绑定类,还提到双向绑定及自定义绑定属性的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

cd54597e7ac5

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

cd54597e7ac5

cd54597e7ac5

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

cd54597e7ac5

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

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

cd54597e7ac5

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

cd54597e7ac5

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

cd54597e7ac5

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

cd54597e7ac5

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

cd54597e7ac5

cd54597e7ac5

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

cd54597e7ac5

cd54597e7ac5

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

cd54597e7ac5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值