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