在ViewModel中:
private var _someData : MutableLiveData<Boolean> = MutableLiveData()
var someData: LiveData<Boolean> = _someData
public fun someMethod(){
_someData.postValue(true)
}
在片段中:
viewModel.someData.observe(this, Observer {
//change posted on MutableLiveData but this LiveData received the changes.
})
由于someData
和_someData
是2个不同的变量,即使将值张贴在onChanged()
上并观察到暴露的someData
发生了变化,如何调用_someData
的LiveData
方法?
两个变量都引用相同的对象。唯一的区别是您要公开LiveData
,因此客户端无法修改其值。因为它只是一个对象,所以当您更新_someData
时,someData
也将被更新。