Comment notifier un observateur lors de l'ajout d'un élément à une liste LiveData?
Bonjour ! Je suis débutant en développement Android avec Kotlin et j'essaie de comprendre l'architecture MVVM. J'ai un ViewModel qui stocke une liste d'éléments (par exemple, des tâches) dans LiveData
- >. Je souhaite que lors de l'ajout d'un nouvel élément à cette liste, tous les observateurs abonnés (par exemple, Activity ou Fragment) reçoivent une notification et mettent à jour l'UI.
Le problème est que LiveData ne suit pas les modifications à l'intérieur de la liste elle-même. Si je fais simplement myList.add(newTask), les observateurs ne se déclenchent pas, car la référence à l'objet liste reste la même. J'ai essayé d'appeler postValue() et setValue() après l'ajout, mais cela n'aide pas.
Voici un exemple de mon code :
```kotlin
class TaskViewModel : ViewModel() {
private val _tasks = MutableLiveData
- >(mutableListOf())
val tasks: LiveData
- > get() = _tasks
fun addTask(task: Task) {
_tasks.value?.toMutableList()?.add(task) // Ajoute à une copie
_tasks.value = _tasks.value // Essaie de "mettre à jour"
}
}
```
No answers yet.
Connectez-vous pour laisser une réponse