Junior — Middle
Ako možno komunikovať s ViewModel na aktualizáciu zobrazenia údajov vo View?
sobes.tech AI
Odpoveď od AI
V ViewModel sa zvyčajne ukladajú údaje a logika, ktoré by sa mali zobrazovať vo View. Na aktualizáciu zobrazenia údajov vo View z ViewModel v Android sa často používa vzor pozorovateľa s LiveData alebo Observable.
Hlavný spôsob interakcie:
- ViewModel obsahuje LiveData s údajmi.
- View (Activity alebo Fragment) sa prihlási na zmeny v LiveData.
- Pri zmene údajov vo ViewModel LiveData upozorní View a UI sa automaticky aktualizuje.
Príklad s LiveData:
class MyViewModel : ViewModel() {
val data: MutableLiveData<String> = MutableLiveData()
fun updateData(newValue: String) {
data.value = newValue
}
}
// V Activity alebo Fragment
viewModel.data.observe(viewLifecycleOwner) { updatedData ->
textView.text = updatedData
}
Týmto spôsobom ViewModel neaktualizuje View priamo, ale poskytuje údaje cez LiveData, a View reaguje na zmeny a aktualizuje zobrazenie.