Junior — Middle
Jak można współdziałać z ViewModel, aby zaktualizować wyświetlanie danych w widoku?
sobes.tech AI
Odpowiedź od AI
W ViewModel zazwyczaj przechowuje się dane i logikę, które mają być wyświetlane w View. Aby zaktualizować wyświetlanie danych w View z ViewModel w Android, często używa się wzorca obserwatora z LiveData lub Observable.
Główny sposób interakcji:
- ViewModel zawiera LiveData z danymi.
- View (Activity lub Fragment) subskrybuje zmiany w LiveData.
- Gdy dane w ViewModel się zmieniają, LiveData powiadamia View, a interfejs użytkownika jest automatycznie aktualizowany.
Przykład z LiveData:
class MyViewModel : ViewModel() {
val data: MutableLiveData<String> = MutableLiveData()
fun updateData(newValue: String) {
data.value = newValue
}
}
// W Activity lub Fragment
viewModel.data.observe(viewLifecycleOwner) { updatedData ->
textView.text = updatedData
}
W ten sposób, ViewModel nie aktualizuje bezpośrednio View, lecz dostarcza dane przez LiveData, a View reaguje na zmiany i aktualizuje wyświetlanie.