做android,啊,准确说写代码,写了有5年了,13年那会就开始跟着写hello world,但是我这人比较懒,因为我SQL一直不咋地,对后台就比较蛋疼,有机会转手机端就转了(主要说学android公司给加500块钱)。
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
这篇文章,我们讲一下如何进行双向绑定,也就是页面数据的更改,引发我们数据源头的变化
好,打开AS,开启我们的代码之路
增加一个EditText,默认为我们输入的文本
增加一个按钮,我们显示下数据源的数据
我们先显示下数据,我们的EditText引用的user.name 所以和textview文本一样



怎么进行数据绑定呢,双向的,我想 根据EditText改变数据源头?
当然我们可以根据EditText.gettext,似乎有点low
好吧,不扯淡了
上图 @={user.name} 就加了一个等号

是不是很神奇,我们测试下,看看textView会跟着改变么,其他代码都没改动的情况下

我们输入了隔壁老王,结果textview跟着改变了,为了表示清白,我们截取下我们的代码页面

我们点击下,看看我们的数据源头,数据,点击下

好的,双向绑定就完成了,是不是很简单?
现在就结束这一篇感觉有点短,男人么,都想长一点,好吧,我们讲下我们常用的一个xml控件--ViewStub
我们先给ViewStub 写一个布局,将viewStub放入我们的按钮下面


点击按钮viewStub显示出来


我们在布局上经常用的一个还有include,先写个布局,显示一下


运行下看看,加载进来了

我们好奇,我们加载进来的布局,能引用数据绑定么?当然可以啦,我们修改下include布局,引入我们的数据类

运行下,

我们虽然引用了数据类,但是。。。好像啥也没显示,想想也是,毕竟没传数据进去啊,怎么办呢,
看图... 使用bind:include中的数据名字="@{数据源}"


运行下,出来了

我们这次说了,双向绑定和viewStub和include,下次我们讲一点有意思的,如何自定义属性??
android Data Binding(05 自定义属性?)
链接地址:https://www.jianshu.com/p/2edff6132d3b
网友评论