首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初值MutableLiveData

初值MutableLiveData
EN

Stack Overflow用户
提问于 2018-07-12 12:00:04
回答 8查看 78.1K关注 0票数 88

如何用初始值初始化MutableLiveData?我在找这样的东西:

val text = MutableLiveData<String>("initial value")

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-12-26 16:57:28

MutableLiveData已经更新,现在它有了一个接受初始值的构造函数:)

根据我所看到的,从这个版本开始,构造函数是可用的:

implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha01'

但遗憾的是,他们没有更新MediatorLiveData来反映这一点。

最终是稳定的,所以现在您实际上可以在文档中看到新的构造函数。

票数 106
EN

Stack Overflow用户

发布于 2018-07-12 13:56:22

您可以创建一个方便的扩展函数来为您进行初始化。

代码语言:javascript
复制
fun <T : Any?> MutableLiveData<T>.default(initialValue: T) = apply { setValue(initialValue) }

val liveData = MutableLiveData<String>().default("Initial value!")
票数 54
EN

Stack Overflow用户

发布于 2018-07-12 12:23:02

更新:现在使用的是MutableStateFlow,而不是带有初始值的MutableLiveData

https://developer.android.com/kotlin/flow/stateflow-and-sharedflow

最后,我意识到我可以用

val text = MutableLiveData<String>().apply { postValue("initial value")}

(从后台线程使用__postValue是必要的,否则从主线程使用时可以安全地使用value = "initial value"__)

票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51305150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档