本文主要介绍Databinding 中View与Model的双向绑定
1.实现双向绑定主要依赖与 data类的实现,即data 类需要继承BaseObservable接口
public class Student extends BaseObservable{
private String name;
@Bindable
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
notifyPropertyChanged(BR.name);
}
}
通过添加注解 @Bindable 即可生成对应的BR 值,在setter时调用norifypropertyChanged(相应BR值)即可通知刷新使用 name属性的xml更新 值
2. 使用 ObservableField包装类实现双向绑定
针对8种基本类型的数据结构提供了专门的包装类
- ObservableBoolean
- ObservableByte
- ObservableChar
- ObservableDouble
- ObservableFloat
- ObservableInt
- ObservableLong
- ObservableShort
针对集合提供的包装类
- ObservableArrayList
- ObservableArrayMap
针对实现了Parcelable接口的对象提供的包装类
- ObservableParcelable
针对其他类型提供的包装类
- ObservableField<T>。最典型的:ObservableField
class Student {
ObservableField<String> name = new ObservableField<>();
}
使用
student.name.set("名字");
student.name.get()