在一般情况下 pojo类 可以 实现数据绑定 数据更新 不会 导致 ui界面的更新和从新 渲染 但是 通过数据绑定 pojo对象 可以在数据被更新的时候取通知其他对象 从而实现 视图的更新 从新渲染 这就在android 端 实现了react 的渲染更新 功能 。 当其中一个可观察数据对象绑定到界面并且该数据对象的属性发生更改时,界面会自动更新。
android 可观察 对象 有三种类型 : 集合 , 对象 、 字段
可观察字段
每个字段 都需要变为可观察字段了以后 才会有更新视图的效果 在 android 中 定义了一些 可变类型 用于处理数据量 或者属性比较少的pojo实体类 这里注意 在jetpack中 的实体类都会遵循 javaBean的原则 否则会无效 至于 写javaBean有哪些原则 后面再说 这里先写一些 android内置的可变字段类型 :
- ObservableBoolean 【boolean】
- ObservableByte 【byte】
- ObservableChar 【char】
- ObservableShort 【short】
- ObservableInt【int】
- ObservableLong【long】
- ObservableFloat【float】
- ObservableDouble【double】
- ObservableParcelable【parcelable】 ==> android 的 数据传输 和存储集合
这是在数据比较少的情况下 但是 在数据比较庞大的时候 就需要你的pojo类 继承 Observable 接口了。
ObservableField 可观察字段 是具有单个字段的自包含可观察对象
如果 向要避免 在 访问的时候 避免 装箱和拆箱 可以使用 final字段来定义
private static class User {
public final ObservableField<String> firstName = new ObservableField<>();
public final ObservableField<String> lastName = new ObservableField<>();
public final ObservableInt age = new ObservableInt();
}
访问和设置值时 使用 set 和 get 方法