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.