What is the meaning of addToBackStack with null parameter?

What is the meaning of addToBackStack(null) followed by a commit()?

Quoting docs:

By calling addToBackStack(), the replace transaction is saved to the
back stack so the user can reverse the transaction and bring back the
previous fragment by pressing the Back button.

If you add multiple changes to the transaction (such as another add()
or remove()) and call addToBackStack(), then all changes applied
before you call commit() are added to the back stack as a single
transaction and the Back button will reverse them all together.

The order in which you add changes to a FragmentTransaction doesn’t matter, except:

You must call commit() last. If you’re adding multiple fragments to the same container, then the order in which you add them determines the order they appear in the view hierarchy.

So you have to commit at the last.

Why you need to pass a null parameter to addToBackStack?

It don’t need to be null, it can be a string. If you don’t want, just pass null.

public abstract FragmentTransaction addToBackStack (String name)

Added in API level 11
Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack.

Parameters
name An optional name for this back stack state, or null.

Concerning:

Seems like this code is useless as I ran the code without the last
line .addToBackStack(null).commit() and it ran without any problems

If you want to navigate to previous fragment add it to backstack. So it depends on whether you want to add the fragment to the backstack.

How to get that fragment after being added like this?

You already have the fragment instance firstFragment. So I don’t know what you mean by get the fragment later.

More information @

http://developer.android.com/guide/components/fragments.html

http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)

Leave a Comment