Sobes.tech
Junior — Middle

Kaip galima sąveikauti su ViewModel, kad būtų atnaujytas duomenų rodymas View?

sobes.tech AI

Atsakymas iš AI

Į ViewModel paprastai saugomi duomenys ir logika, kurie turi būti rodomi View. Norint atnaujinti duomenų rodymą View iš ViewModel Android, dažnai naudojamas stebėtojo modelis su LiveData arba Observable.

Pagrindinis sąveikos būdas:

  • ViewModel turi LiveData su duomenimis.
  • View (Activity arba Fragment) prenumeruoja LiveData pokyčius.
  • Kai duomenys keičiasi ViewModel, LiveData praneša View, ir UI atnaujinamas automatiškai.

Pavyzdys su LiveData:

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

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

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

Taip, ViewModel neatnaujina View tiesiogiai, o teikia duomenis per LiveData, o View reaguoja į pokyčius ir atnaujina rodymą.