Fra*_*cis 33 android kotlin android-livedata
如何用初始值初始化MutableLiveData?我正在寻找类似的东西:
val text = MutableLiveData<String>("initial value")
Fre*_*ula 45
MutableLiveData
已更新,现在它有一个接受初始值的构造函数:)
从我所看到的,构造函数从这个版本开始可用:
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha01'
MediatorLiveData
尽管如此,他们还没有更新以反映这一点,这是一种耻辱.
Lio*_*and 36
您可以创建一个方便的扩展功能,为您进行初始化.
fun <T : Any?> MutableLiveData<T>.default(initialValue: T) = apply { setValue(initialValue) }
val liveData = MutableLiveData<String>().default("Initial value!")
Run Code Online (Sandbox Code Playgroud)
Fra*_*cis 20
最后,我意识到我可以使用
val text = MutableLiveData<String>().apply { postValue("initial value")}
(postValue
从后台线程使用时是必要的,否则从主线程使用时可以安全使用value = "initial value"
)
Rea*_*hed 14
虽然这是一个 Kotlin 问题,但我认为如果我也为此提供 Java 版本可能会有所帮助。
使用androidx
依赖时:
implementation "androidx.lifecycle:lifecycle-viewmodel:2.1.0"
Run Code Online (Sandbox Code Playgroud)
MutableLiveData
使用构造函数初始化,如下所示。
new MutableLiveData<>("Initial value");
Run Code Online (Sandbox Code Playgroud)
使用android
依赖项时:
implementation 'android.arch.lifecycle:viewmodel:1.1.1'
Run Code Online (Sandbox Code Playgroud)
初始化如下。
MutableLiveData<String> text = MutableLiveData<String>();
text.setValue("Initial value");
Run Code Online (Sandbox Code Playgroud)
的androidx
依赖确实有需要的数值为你的初始化构造函数LiveData
。但是,如果您使用android
依赖项,您将无法选择使用构造函数进行初始化。
归档时间: |
|
查看次数: |
20547 次 |
最近记录: |