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