¿Cuál es el significado de addToBackStack (nulo) seguido de un compromiso ()?
Citando documentos:
Al llamar a addToBackStack (), la transacción de reemplazo se guarda en la pila de actividades para que el usuario pueda revertir la transacción y recuperar el fragmento anterior presionando el botón Atrás.
Si agrega varios cambios a la transacción (como otro add () o remove ()) y llama a addToBackStack (), todos los cambios aplicados antes de llamar a commit () se agregan a la pila de actividades como una sola transacción y el botón Atrás los invertirá todos juntos.
No importa el orden en el que agregue los cambios a FragmentTransaction, excepto:
Debe llamar en commit()
último lugar. Si agrega varios fragmentos al mismo contenedor, el orden en el que los agrega determina el orden en que aparecen en la jerarquía de vistas.
Así que tienes que comprometerte al final.
¿Por qué necesita pasar un parámetro nulo a addToBackStack?
No es necesario que sea nulo, puede ser una cadena. Si no lo desea, simplemente pase null.
resumen público FragmentTransaction addToBackStack (nombre de cadena)
Agregado en el nivel de API 11 Agregue esta transacción a la pila de actividades. Esto significa que la transacción se recordará después de que se confirme y revertirá su operación cuando más tarde salga de la pila.
Nombre de los parámetros Un nombre opcional para este estado de pila de actividades, o nulo.
Sobre:
Parece que este código es inútil ya que ejecuté el código sin la última línea .addToBackStack (null) .commit () y se ejecutó sin ningún problema
Si desea navegar al fragmento anterior, agréguelo al backstack. Por lo tanto, depende de si desea agregar el fragmento al backstack.
¿Cómo obtener ese fragmento después de haber sido agregado así?
Ya tienes la instancia del fragmento firstFragment
. Así que no sé a qué te refieres con obtener el fragmento más tarde.
Más información @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)