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í.