android MVVM开发模式(三)


android MVVM开发模式(三)
为了更好地理解@BindingAdapter,github地址里面提交了一个adapters目录,将系统提供的适配提交上去,以便查阅。

回顾
我们前两节讲了哪些内容呢?
mvvm模型概念
dataBinding是什么
演示xml如何变为了代码
演示了数据自动通知BaseObservable

通过上面的学习,我们掌握了xml变成代码,并且数据(Model)和View通过dataBinding关联起来是如何操作的了。有人就说了,毕竟系统提供的适配器(@BindingAdapter标注的静态方法 )有限,我们能自己定义属性对应的方法吗?
答案是YES。因此我们就要自己去写自己的@BindingAdapter,来完成我们所需要的功能。如此一来,我们会发现这个dataBinding的突出优势来了。
so,我们看步骤:
1加个自定义属性

添加一个age年龄的属性,标记类型为整数

2在我们的xml使用

加入属性值,和User里面的age关联。(因为是我们自定义的属性,系统肯定不知道对应的函数方法是什么,因此@BindingAdapter来给指明方向)

3适配方法
这里写图片描述
随便在一个位置,写入如下代码:必须静态函数,原因很好理解。(不是静态含需要对应实例,用起来很怪。)
两个参数,第一个就是我们是在哪里是用的,因为我们是在一个TextView使用的,因此第一个参数是TextView类型。第二个就是我们定义的类型了,int,实现下操作即可。

4演示
在我们的User类里面,写上:
加入了一个值age,标记成可观测

实现一个设置接口啦。
调用地方:

我们看到,当赋值年龄之后,界面正确的显示出来了。效果如下:

5后记
我们看下这个@BindingAdapter最后在ActivityMainBinding承载着什么关系,直接看代码:
看到了吧。我们使用工具的时候,第一要素是什么呢?就是我们先去思考我们会遇见哪些问题,然后就可以去找对应的解决方案了。用我们的实际做法,去对应着这个dataBinding来实现,这样子我们就很快理解这个东西的实质了。

6代码位置
https://github.com/luxiaoming/MVVMDemo

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员入门进阶(免费辅导开题报告)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值