使用了Databinding,就不可避免的要创建Observable Objects
正如google所提供的那样,创建Observable Objects有两种方式:第一是在setter,getter方法加上注解;二是使用ObservableFields 创建一个public final 的字段。
最后一种方式因为是公有,可能会带来一些问题,还是偏向于第一种方式,使用第一种方式代码会像如下:
private static class User extends BaseObservable {
private String firstName;
private String lastName;
@Bindable
public String getFirstName() {
return this.firstName;
}
@Bindable
public String getLastName() {
return this.lastName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
notifyPropertyChanged(BR.firstName);
}
public void setLastName(String lastName) {
this.lastName = lastName;
notifyPropertyChanged(BR.lastName);
}
}
要是字段多,修改每一个getter,setter会显得非常困难,这里提供一种简单的修改方式,使用一个android studio 插件 DbSetter
源码地址在这里
https://github.com/LavenderStream/DbSetter
下载地址
https://plugins.jetbrains.com/plugin/9296-dbsetter
使用方法
在BaseObservable子类中调出Generate菜单(右键),会看到DatabindingSetter这个选项,选择生成字段, 自动填充