Ver Mensaje Individual
  #2  
Viejo 28/06/18, 09:57:15
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Muy buenas, empezaré diciendo que los fragments no me gustan nada porque su ciclo de vida es demasiado complejo.

Aunque hay varias formas de abordar el asunto, dado que estás empezando lo más sencillo es que en la clase donde defines el fragment crees un método con los parámetros que necesites y lo llames desde la actividad. En ese sentido es como un objeto cualquiera.

Ojo eso sí con guardar el estado del fragment en el onSaveInstanceState del fragment y recuperarlo en el onActivityCreated. Si le pasas los datos a través de tu método y a Android le parece bien destruir el fragment y volver a crearlo, no tendrás los datos cuando tu app vuelta a presentarse al usuario.

Si son datos de inicialización del fragment, en vez de pasarlos por constructor como harías en cualquier clase -hacer esto en fragments es pecado- , pasa un Bundle llamando al método setArguments justo después de crear el fragment. Esos datos que pases por el Bundle, Android te los va a guardar si tiene que recrear el fragment y tú no tienes que hacer nada, simplemente llamar al getArguments para leerlo en el fragment.

La tendencia actual de todas formas (que si estás empezando te vas a liar más todavía y puede ser matar moscas a cañonazos) es que no pases datos a nadie sino que los interesados se suscriban a los cambios de los datos y actúen en consecuencia cuando el valor cambia. Los datos deberían estar en un único sitio (el "modelo de datos"), y los demás simplemente usarlos. Para eso hay arquitecturas como MVVM usando frameworks como RxJava o las clases ViewModel y LiveData de Google que viene a ser el mismo concepto más orientado a Android.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Última edición por mocelet Día 28/06/18 a las 17:07:54.
Responder Con Cita