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