两个月前,我开始使用数据绑定库,并且非常喜欢它。但是我遇到了一个问题。例如,我有以下POJO:
Car{
@Bindable
var name: String
@Bindable
set(value){
field = value
notifyPropertyChanged(BR.name)
}
}
Bike{
@Bindable
var name: String
@Bindable
set(value){
field = value
notifyPropertyChanged(BR.name)
}
}
所以基本上我有一个共享属性名称的Car and Bike POJO。他们都有名字。问题在于BR类仅包含其中一个,它不会为该类生成前缀。我对此进行了测试,其中的一个的notifyPropertyChanged方法将不起作用。 真烦人。现在,我必须在两者或其中之一上加上前缀,以使它们不匹配。这样可以解决问题,但是Bike类变为:
Bike{
@Bindable
var bikeName: String
@Bindable
set(value){
field = value
notifyPropertyChanged(BR.bikeName)
}
}
这可行,但是我当然不想实现这样的模型。知道如何解决这个问题的人吗?
答案 0 :(得分:0)
您可以使用Kotlin Inheritance。这两个类都有相同的字段。
open class Vehicle : BaseObservable() {
@Bindable
var name: String = ""
@Bindable
set(value) {
field = value
notifyPropertyChanged(BR.name)
}
}
class Bike : Vehicle() {
}
class Car : Vehicle() {
}