Sobes.tech
Junior — Middle

Hogyan lehet kölcsönhatásba lépni a ViewModel-lel az adatok megjelenítésének frissítéséhez a View-ban?

sobes.tech MI

Válasz az MI-től

A ViewModel általában olyan adatokat és logikát tartalmaz, amelyeknek a View-ban kell megjelenniük. Az Androidban a ViewModel-ból a View felé történő adatok frissítéséhez gyakran használják az observer mintát LiveData vagy Observable segítségével.

Főbb interakciós mód:

  • A ViewModel tartalmaz egy LiveData-t az adatokkal.
  • A View (Activity vagy Fragment) feliratkozik a LiveData változásaira.
  • Amikor a ViewModel-ban az adatok megváltoznak, a LiveData értesíti a View-t, és az UI automatikusan frissül.

Példa LiveData-val:

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

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

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

Így a ViewModel nem frissíti közvetlenül a View-t, hanem adatokat szolgáltat a LiveData-n keresztül, és a View reagál a változásokra, frissítve a megjelenítést.