单向绑定刷新 UI 有三种方式:BaseObservable、ObservableField、ObservableCollection。
BaseObservable | |
---|---|
BaseObservable 提供了两个刷新 UI 的方法:notifyPropertyChanged、notifyChange。 | |
方法说明 | |
notifyPropertyChanged(int fieldId) | 通知侦听器此实例的特定属性已更改 |
notifyChange() | 通知监听器此实例的所有属性已更改 |
在局部 UI 的刷新过程中,notifyPropertyChanged()
需要传入一个 int 类型的参数,这个参数就是 fieldId
,指的就是特定属性名对应的 ID。这里要注意的是,这个属性必须是 public
类型,并且被 @Bindable
注解进行修饰,否则会报错。本例中以 User
类的 name
属性进行局部 UI 刷新测试,代码如下:
1 | package com.sunzn.bind; |
✦ 注意: BR 类在导包的时候需选择项目包名。
准备工作完成后,紧接着就可以设置点击事件,通过点击事件来变更实体的属性值,进而驱动 UI 的变更。这里需要注意的是点击事件的设置需要搭配布局文件来使用,代码如下:
1 | package com.sunzn.data; |
布局文件需要将可观测的实体(User)、监听器(ClickListener)导入,并对 onClick 事件进行绑定。到此,就可以运行测试了。代码如下:
1 |
|