Sobes.tech
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.