gpt4 book ai didi

android - 如何将 ViewModelScope 等异步协程范围的值返回到您的 UI?

转载 作者:行者123 更新时间:2023-12-02 12:15:10 27 4
gpt4 key购买 nike

我正在尝试从数据库中检索单个条目,并在 viewModelScope 的帮助下成功地将值返回到我的 View 模型中,但我希望将此值返回给驻留在 fragment 中的调用函数,以便它可以是显示在 TextView 上。我试图以传统方式返回值,但它不起作用。那么,我怎样才能将这个值从 viewModelScope.launch 返回给调用函数呢?

查看型号

    fun findbyID(id: Int) {
viewModelScope.launch {
val returnedrepo = repo.delete(id)
Log.e(TAG,returnedrepo.toString())
// how to return value from here to Fragment
}

}

存储库
    suspend fun findbyID(id : Int):userentity{
val returneddao = Dao.findbyID(id)
Log.e(TAG,returneddao.toString())
return returneddao
}

最佳答案

LiveData可用于从 ViewModel 获取值至Fragment .

制作函数findbyID返回 LiveData并在 fragment 中观察它。
ViewModel中的函数

fun findbyID(id: Int): LiveData</*your data type*/> {
val result = MutableLiveData</*your data type*/>()
viewModelScope.launch {
val returnedrepo = repo.delete(id)
result.postValue(returnedrepo)
}
return result.
}

观察员 Fragment
findbyId.observer(viewLifeCycleOwner, Observer { returnedrepo ->
/* logic to set the textview */
})

关于android - 如何将 ViewModelScope 等异步协程范围的值返回到您的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60910978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com