Android DataBinding系列详解(二)
2022-07-21 本文已影响0人
cqj
上文简单地介绍了DataBinding将静态数据绑定到视图上,除了简单地静态数据绑定外,还支持动态地将数据自动更新到视图上。
具体操作
如图1,将Student类继承BaseObservable,在属性getName上增加Bindable注释,此作用用于表示此属性是可绑定的,并生成对应的BR,在setName函数赋值后增加notifyPropertyChanged(BR.name),此方法用来进行视图的更新

完成后在原来的MainActivity代码后面增加一个5s的延时操作

此时,见证奇迹的时候出现了

除了将动态数据实时更新到视图上外,视图上更改的数据也可以实时更新类的字段属性值,实现起来超级简单,只要将xml中@{}改为@={}

将Activity代码做如下修改,5s后修改TextView显示的文本值

下面就是见证奇迹的时候,类的name属性值也变为Alex了,这就是所谓的双向绑定

DataDing的功能远不止这些,要想更多的了解,请关注我的微博Android DataBinding系列详解(三)