如何在 Kotlin 中将 MutableLiveData<Boolean>() 的值设置为不利?

Hel*_*oCW 5 android kotlin android-livedata

_displayCheckBox是 a MutableLiveData<Boolean>,我希望将其设置为不利。

但似乎_displayCheckBox.value = !_displayCheckBox.value!! 不能很好地工作,我该如何解决?

代码 A

private val _displayCheckBox = MutableLiveData<Boolean>(true)
val displayCheckBox : LiveData<Boolean> = _displayCheckBox

fun switchCheckBox(){
    _displayCheckBox.value =  !_displayCheckBox.value!!   //It seems that it can't work well.
}
Run Code Online (Sandbox Code Playgroud)

ami*_*phy 5

如果使用作用域函数(例如 )包装设置值let,则仅当该值不为 null 时才可以对该值取反,否则,取反将被忽略。

fun switchCheckBox() {
    _displayCheckBox.value?.let {
        _displayCheckBox.value = !it
    }
}
Run Code Online (Sandbox Code Playgroud)