Sobes.tech
Junior — Middle

Jak lze komunikovat s ViewModel pro aktualizaci zobrazení dat ve View?

sobes.tech AI

Odpověď od AI

V ViewModel jsou obvykle uložena data a logika, které by měly být zobrazeny ve View. Pro aktualizaci zobrazení dat ve View z ViewModel v Androidu často používají pozorovací vzor s LiveData nebo Observable.

Hlavní způsob interakce:

  • ViewModel obsahuje LiveData s daty.
  • View (Activity nebo Fragment) se přihlásí ke změnám v LiveData.
  • Při změně dat ve ViewModel LiveData upozorní View a uživatelské rozhraní se automaticky aktualizuje.

Příklad s LiveData:

class MyViewModel : ViewModel() {
    val data: MutableLiveData<String> = MutableLiveData()

    fun updateData(newValue: String) {
        data.value = newValue
    }
}

// V Activity nebo Fragment
viewModel.data.observe(viewLifecycleOwner) { updatedData ->
    textView.text = updatedData
}

Tímto způsobem ViewModel neaktualizuje View přímo, ale poskytuje data přes LiveData, a View reaguje na změny a aktualizuje zobrazení.