Junior — Middle
¿Se puede usar la misma ViewModel para intercambiar datos entre dos fragmentos durante la navegación?
sobes.tech AI
Respuesta de la IA
Sí, se puede usar la misma ViewModel para intercambiar datos entre dos fragmentos durante la navegación, si la ViewModel está vinculada a un propietario de ciclo de vida común, por ejemplo, a una Activity. En este caso, ambos fragmentos acceden a la misma ViewModel, lo que les permite intercambiar datos sin necesidad de vincularlos directamente.
Ejemplo:
// Obtener la ViewModel vinculada a la Activity
val sharedViewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
// El Fragmento A establece datos
sharedViewModel.someData.value = "Hola desde el Fragmento A"
// El Fragmento B observa los cambios
sharedViewModel.someData.observe(viewLifecycleOwner) { data ->
// Usar los datos recibidos
}
De esta manera, la ViewModel actúa como una fuente común de datos entre los fragmentos, simplificando la comunicación y manteniendo los datos al cambiar la configuración.