livedata 和 mutableLiveData 有什么区别?
What is the difference between livedata and mutableLiveData?
livedata 和 mutableLiveData 有什么区别?什么时候都可以观察到新值?
LiveData 和 MutableLiveData 之间唯一的主要区别是您可以更改 MutableLiveData[=27 的值=] 但 LiveData 不允许您更改它的值。 LiveData只让你观察和利用它的价值
两者一般是一起使用的,MutableLiveData用来记录变化的值,LiveData用来通知UI变化的值。
例如
class SampleViewModel(): ViewModel() {
private val _sampleString = MutableLiveData<String>()
val sampleString: LiveData<String> get() = _sampleString
fun setSampleString(temp: String) {
_sampleString.value = temp
}
}
class MainActivity: AppCompatActivtiy {
private val viewModel: SampleViewModel by viewModels()
//in onCreate
viewModel.sampleString.observe(this) {
//here you will have the value sampleString, that you can use as you want.
}
//that is how you can update the value of MutableLiveData
viewModel.setSampleString("random string")
}
此处,一旦您将值分配给 MutableLiveData _sampleString,LiveData sampleString 将收到通知并通知更改在里面做的。
一旦 MutableLiveData 中更新了新值,LiveData 就会观察到新值。
希望这已经消除了您的疑虑。
livedata 和 mutableLiveData 有什么区别?什么时候都可以观察到新值?
LiveData 和 MutableLiveData 之间唯一的主要区别是您可以更改 MutableLiveData[=27 的值=] 但 LiveData 不允许您更改它的值。 LiveData只让你观察和利用它的价值
两者一般是一起使用的,MutableLiveData用来记录变化的值,LiveData用来通知UI变化的值。 例如
class SampleViewModel(): ViewModel() {
private val _sampleString = MutableLiveData<String>()
val sampleString: LiveData<String> get() = _sampleString
fun setSampleString(temp: String) {
_sampleString.value = temp
}
}
class MainActivity: AppCompatActivtiy {
private val viewModel: SampleViewModel by viewModels()
//in onCreate
viewModel.sampleString.observe(this) {
//here you will have the value sampleString, that you can use as you want.
}
//that is how you can update the value of MutableLiveData
viewModel.setSampleString("random string")
}
此处,一旦您将值分配给 MutableLiveData _sampleString,LiveData sampleString 将收到通知并通知更改在里面做的。 一旦 MutableLiveData 中更新了新值,LiveData 就会观察到新值。
希望这已经消除了您的疑虑。