Junior — Middle
Jak jest realizowane użycie ViewModel w Jetpack do zarządzania stanem interfejsu użytkownika?
sobes.tech AI
Odpowiedź od AI
ViewModel w Jetpack jest używany do przechowywania i zarządzania stanem interfejsu użytkownika, zachowując dane podczas zmian konfiguracji (np. obrót ekranu). ViewModel oddziela logikę UI od Activity lub Fragment, co ułatwia testowanie i utrzymanie.
Przykład użycia:
class MyViewModel : ViewModel() {
private val _text = MutableLiveData<String>()
val text: LiveData<String> = _text
fun updateText(newText: String) {
_text.value = newText
}
}
// W Activity lub Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.text.observe(this) { updatedText ->
textView.text = updatedText
}
W ten sposób ViewModel przechowuje dane, które przetrwają ponowne tworzenie UI, i udostępnia je przez LiveData do reaktywnej aktualizacji interfejsu.