Sobes.tech
Junior — Middle

Come viene implementato l'uso di ViewModel in Jetpack per gestire lo stato dell'interfaccia utente?

sobes.tech AI

Risposta dell'AI

Il ViewModel in Jetpack viene utilizzato per memorizzare e gestire lo stato dell'interfaccia utente, mantenendo i dati durante le modifiche di configurazione (ad esempio, la rotazione dello schermo). Il ViewModel separa la logica dell'UI da Activity o Fragment, facilitando test e manutenzione.

Esempio di utilizzo:

class MyViewModel : ViewModel() {
    private val _text = MutableLiveData<String>()
    val text: LiveData<String> = _text

    fun updateText(newText: String) {
        _text.value = newText
    }
}

// In Activity o Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.text.observe(this) { updatedText ->
    textView.text = updatedText
}

In questo modo, il ViewModel memorizza i dati che sopravvivono alla ricreazione dell'UI e li fornisce tramite LiveData per un aggiornamento reattivo dell'interfaccia.