jetPack-Databind

使用DataBing如果只是想展示数据的话,你的数据类就和常规的一样就好了。如果你想ui监听到你的数据改变的话,你的数据类就需要继承类BaseObservable,参数需要用@Bindable进行声明。

1
2
3
4
class Student : BaseObservable {
@Bindable
var name: String = ""
}

使用@Bindable声明的参数我们在类BR可以找到生成的对应参数名子:

1
2
3
4
public class BR {
public static final int _all = 0;
public static final int name = 1;
}

数据变化我们需要调用notifyPropertyChanged(propertyId) 或者 notifyChange()。一个是指针对某一个id进行更新,一个是针对全部的数据进行更新。

1
2
3
4
5
6
7
8
class Student : BaseObservable {
@Bindable
var name: String = ""
set(value) {
field = value
notifyPropertyChanged(BR.name)
}
}