Junior — Middle
Kuidas saab ViewModel-iga suhelda andmete kuvamise uuendamiseks View-s?
sobes.tech AI
Vastus AI-lt
Tav ViewModel tavaliselt salvestab andmeid ja loogika, mis peaksid olema View-s nähtavad. Andmete kuvamise uuendamiseks ViewModelist View-s Androidis kasutatakse sageli jälgija mustrit koos LiveData või Observable'iga.
Peamine suhtlusviis:
- ViewModel sisaldab LiveData andmetega.
- View (Activity või Fragment) registreerub LiveData muutuste jälgimiseks.
- Kui andmed muutuvad ViewModelis, teavitab LiveData View-d ning kasutajaliides uuendatakse automaatselt.
Näide LiveData'ga:
class MyViewModel : ViewModel() {
val data: MutableLiveData<String> = MutableLiveData()
fun updateData(newValue: String) {
data.value = newValue
}
}
// Activity või Fragment
viewModel.data.observe(viewLifecycleOwner) { updatedData ->
textView.text = updatedData
}
Sellisel viisil ei uuenda ViewModel otse View-d, vaid pakub andmeid LiveData kaudu ning View reageerib muudatustele ja uuendab kuvamist.