android Data Binding(01 入门篇)
https://www.jianshu.com/p/7a9ddf4f1301
android Data Binding(02 数据刷新)
https://www.jianshu.com/p/59fc32f1f0aa
android Data Binding(03 点击事件)
https://www.jianshu.com/p/b83c83dbc43d
android Data Binding(04 双向绑定 和布局倒入)
https://www.jianshu.com/p/94a17cd869d5
android Data Binding(05自定义属性)
https://www.jianshu.com/p/2edff6132d3b
android Data Binding(06 列表绑定)
https://www.jianshu.com/p/5c91bf49e057
android Data Binding(07 零散汇总)
https://www.jianshu.com/p/882a2169868b
默默吐槽一下国内的博客,很多都是抄来抄去,错都错的一样,无奈,最近把DataBinding学习了一下,写篇文章,省得自己忘记了,如果哪里写的不对,希望大家指正(虽然没人看哈哈)。
mvvm是一种架构思想,DataBindding是谷歌官方框架,仅此而已。
如果大家想看视频版本的,我推荐下面两个视频,可以基础入门,不是打广告,谢谢
Android Data Binding实战-入门
https://www.imooc.com/learn/719
Android Data Binding实战-高级篇
https://www.imooc.com/learn/720
我们先学习下数据绑定的最基本的步骤
enabled一开,dataBinding就可以使用了

好了接下来开启基础知识讲解
首先我们进入我们常用的MainActivity的布局页面 生成一对layout标签 ,然后将LinearLayout下的布局参数移动到这对标签下,给我们的textview写上一个id。


现在基本的布局就已经更改完毕了,既然说数据绑定数据绑定的,我们先去做一个数据也就是我们的bean类

这个时候我们去我们activity那里打一下
会惊奇发现出现了一个ActivityMainBinding,生成的binding名字和xml文件名字是有对应的,xml文件叫
activity_main 那么生成的binding就是ActivityMainBinding,为了证明这一点,我将xml文件更改下名字,注意更改完名字,一般来说是你改完名字就会更改过来,不行就需要重新sync一下,


使用 DataBindingUtil.setContentView 生成我们的binding对象,当然还有其他方法,这里就不一一讲了.



神奇的事情发生了,我们也没有findViewById(),我们的textview就自动出来了,这就是框架的神奇之处,当我我们现在可以直接省掉了写find的过程,但是这样有什么意思呢?接下来我们开启数据绑定的过程

进入XMl页面 在我们的layout写上一对data标签,这标志着这里将是数据区域
在data标签里我们写上variable标签,name代表我们为这个数据起的名字,type代表你引用的bean类,

接下来 我们在textview那里引入资源
大家可以实验一下,是会有提示的
这里的userEntry.name 其实前面对应的是刚才的name ,我将那么改为user,下面就得改成user.name



回到我们的页面MainActivity 见证下奇迹
居然出现了一个setuser方法

,我们现在new一个userEnrty仍进去试试

运行一下 我们写的文字就显示了出来

这样最简单的数据绑定就完成了
数据绑定理论上应该是当数据变化,ui去自动刷新,接下来我们就将讲一下,如果让UI随着数据变化自动更新,当然一切的秘密还是在数据类上,咱们就看下一篇
android Data Binding(02 数据绑定刷新)
https://www.jianshu.com/p/59fc32f1f0aa
网友评论