在项目中想要监听某个Bean实体类的字段更新后需要处理相关逻辑,可以使用如下方法
data class AABean(
var carName:String = "",
var carType:Int = 0,
) {
private val propertyChangeSupport = PropertyChangeSupport(this)
var carLight: Int = 60
set(value) {
val oldValue = field
field = value
propertyChangeSupport.firePropertyChange("carLight", oldValue, value)
}
var carMode: Int = 0
set(value) {
val oldValue = field
field = value
propertyChangeSupport.firePropertyChange("carMode", oldValue, value)
}
fun addPropertyChangeListener(listener: PropertyChangeListener) {
propertyChangeSupport.addPropertyChangeListener(listener)
}
fun removePropertyChangeListener(listener: PropertyChangeListener) {
propertyChangeSupport.removePropertyChangeListener(listener)
}
}
需要监听时先add
MyApplication.bean.addPropertyChangeListener(propertyChangeListener)
private val propertyChangeListener = PropertyChangeListener { evt ->
if (evt.propertyName == "carLight") {
int value = evt.newValue as Int
}
if (evt.propertyName == "carMode") {
int value = evt.newValue as Int
}
}
需要销毁时使用
MyApplication.bean.removePropertyChangeListener(propertyChangeListener)
Android监听Bean字段更新
3531

被折叠的 条评论
为什么被折叠?



