如何将LiveData结果发出()到现有LiveData对象?

时间:2019-11-07 10:56:57

标签: android android-livedata kotlin-coroutines

official Android developer docs中的协程LiveData示例使用emit()给出了以下示例:

val user: LiveData<User> = liveData {
    val data = database.loadUser() // loadUser is a suspend function.
    emit(data)
}

我看到的每个emit()示例都包含了ProAndroidDev tutorial,在使用LiveData时会创建一个新的emit()对象。如何从已经创建的LiveDataScope对象中获取LiveData并为其添加值emit()?例如

class MyViewModel : ViewModel() {
    private val user: MutableLiveData<User> = MutableLiveData()

    fun getUser(): LiveData<User> {
        return user
    }

    fun loadUser() {
        // Code to emit() values to existing user LiveData object.
    }

非常感谢,非常感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

类似

fun loadUser() {
     user.value = User()
}

通过

收听
 myViewModel.getUser().observe(this, EventObserver { user ->
     // do something with user
 })

希望有帮助