如何将LiveData结果发送到现有LiveData对象?

问题描述 投票:2回答:1

LiveData中的协程official Android developer docs示例使用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.
    }

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

android android-livedata kotlin-coroutines
1个回答
0
投票
类似

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

通过]收听>

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

希望有帮助
© www.soinside.com 2019 - 2024. All rights reserved.