Comment puis-je initialiser MutableLiveData avec la valeur initiale? Je cherche quelque chose comme:
val text = MutableLiveData<String>("initial value")
Comment puis-je initialiser MutableLiveData avec la valeur initiale? Je cherche quelque chose comme:
val text = MutableLiveData<String>("initial value")
MutableLiveData
a été mis à jour et maintenant il a un constructeur qui accepte une valeur initiale :)
De ce que je peux voir, le constructeur est disponible à partir de cette version:
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha01'
C'est une honte qu'ils n'ont pas mis à jour MediatorLiveData
pour refléter le fait que, bien que.
2.1.0
est enfin stable, alors maintenant vous pouvez réellement voir le nouveau constructeur dans la documentation.
Vous pouvez créer une fonction d'extension pratique qui effectue l'initialisation pour vous.
fun <T : Any?> MutableLiveData<T>.default(initialValue: T) = apply { setValue(initialValue) }
val liveData = MutableLiveData<String>().default("Initial value!")
Enfin, je me rends compte que je peux utiliser
val text = MutableLiveData<String>().apply { postValue("initial value")}
( postValue
est nécessaire lors de l'utilisation à partir d'un thread d'arrière-plan, sinon lors de l'utilisation à partir du thread principal, vous pouvez utiliser en toute sécurité value = "initial value"
)
Si c'est un Kotlin question, je pensais qu'il pourrait être utile si j'ai mis la version de Java pour cela ainsi.
Tout en utilisant androidx
dépendance:
implementation "androidx.lifecycle:lifecycle-viewmodel:2.1.0"
Initialiser l' MutableLiveData
en utilisant le constructeur de la façon suivante.
new MutableLiveData<>("Initial value");
Alors que l'aide de l' android
dépendance:
implementation 'android.arch.lifecycle:viewmodel:1.1.1'
Initialiser comme suit.
MutableLiveData<String> text = MutableLiveData<String>();
text.setValue("Initial value");
L' androidx
de dépendance n'ont le constructeur qui prend une valeur pour l'initialisation de votre LiveData
. Toutefois, si vous utilisez l' android
dépendance vous n'aurez pas la possibilité de faire l'initialisation en utilisant le constructeur
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.