前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android MVVM开发模式(三)

android MVVM开发模式(三)

作者头像
用户1263308
发布2018-02-01 18:51:49
5770
发布2018-02-01 18:51:49
举报
文章被收录于专栏:代码GG之家代码GG之家

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码GG之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • android MVVM开发模式(三)
    • 回顾
      • 1加个自定义属性
      • 2在我们的xml使用
      • 3适配方法
      • 4演示
      • 5后记
      • 6代码位置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档