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

原文发布于微信公众号 - 代码GG之家(code_gg_home)

原文发表时间:2016-07-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏L宝宝聊IT

Linux基础——正则表达式

2193
来自专栏Greenplum

Linux 常用命令(五)

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

1630
来自专栏北京马哥教育

ansible之playbook功能简述

playbooks剧本简介 playbooks是ansible更为强大的配置管理组件,实现基于文本文件编排执行的多个任务,且多次重复执行。其是使用YAML(Ye...

3685
来自专栏xingoo, 一个梦想做发明家的程序员

Windows下elasticsearch插入数据报错!

  按照官方文档操作,但是windows下有些不同,它不认识单引号',因此如果这样操作,就会报错: C:\Users\neusoft>curl localhos...

19810
来自专栏阮一峰的网络日志

关于URL编码

一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址"http://www.abc.com",但是没...

1923
来自专栏散尽浮华

linux运维中的命令梳理(三)

----------文本操作命令---------- sed命令:文本编辑工具 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可...

2578
来自专栏用户2442861的专栏

python操作redis简单例子

#2、配置  配置一下吧,默认配置文件在: “/etc/redis/redis.conf”  绑定ip:  “bind 127.0.0.1″ -> “b...

2552
来自专栏张首富-小白的成长历程

Linux-四剑客-find-awk-grep-sed解释----未完结版

find - search for files in a directory hierarchy 搜索目录层次结构中的文件 用来在指定目录下面查找文件或目录,任...

1803
来自专栏PHP在线

URL汉字编码

一、问题的由来 URL就是网址,只要上网,就一定会用到。 一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文 字和符号。比如,世界上有...

4725
来自专栏小樱的经验随笔

【批处理学习笔记】第三课:简单批处理命令(2)

cls 命令     清除屏幕。执行该命令后,屏幕上的所有信息都被清除,光标重新定位至屏幕左上角。 REM 和 :: REM为注释命令,一般用来给程序加上注...

3324

扫码关注云+社区

领取腾讯云代金券