android.support.v4.app
Class FragmentManager

java.lang.Object
  extended by android.support.v4.app.FragmentManager

public abstract class FragmentManager
extends Object

Static library support version of the framework's FragmentManager. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.

Your activity must derive from FragmentActivity to use this.


Nested Class Summary
static interface FragmentManager.BackStackEntry
          Representation of an entry on the fragment back stack, as created with FragmentTransaction.addToBackStack().
static interface FragmentManager.OnBackStackChangedListener
          Interface to watch for changes to the back stack.
 
Field Summary
static int POP_BACK_STACK_INCLUSIVE
          Flag for popBackStack(String, int) and popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached.
 
Constructor Summary
FragmentManager()
           
 
Method Summary
abstract  void addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener)
          Add a new listener for changes to the fragment back stack.
abstract  FragmentTransaction beginTransaction()
          Start a series of edit operations on the Fragments associated with this FragmentManager.
abstract  void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args)
          Print the FragmentManager's state into the given stream.
static void enableDebugLogging(boolean enabled)
          Control whether the framework's internal fragment manager debugging logs are turned on.
abstract  boolean executePendingTransactions()
          After a FragmentTransaction is committed with FragmentTransaction.commit(), it is scheduled to be executed asynchronously on the process's main thread.
abstract  Fragment findFragmentById(int id)
          Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction.
abstract  Fragment findFragmentByTag(String tag)
          Finds a fragment that was identified by the given tag either when inflated from XML or as supplied when added in a transaction.
abstract  FragmentManager.BackStackEntry getBackStackEntryAt(int index)
          Return the BackStackEntry at index index in the back stack; entries start index 0 being the bottom of the stack.
abstract  int getBackStackEntryCount()
          Return the number of entries currently in the back stack.
abstract  Fragment getFragment(android.os.Bundle bundle, String key)
          Retrieve the current Fragment instance for a reference previously placed with putFragment(Bundle, String, Fragment).
 FragmentTransaction openTransaction()
          Deprecated. 
abstract  void popBackStack()
          Pop the top state off the back stack.
abstract  void popBackStack(int id, int flags)
          Pop all back stack states up to the one with the given identifier.
abstract  void popBackStack(String name, int flags)
          Pop the last fragment transition from the manager's fragment back stack.
abstract  boolean popBackStackImmediate()
          Like popBackStack(), but performs the operation immediately inside of the call.
abstract  boolean popBackStackImmediate(int id, int flags)
          Like popBackStack(int, int), but performs the operation immediately inside of the call.
abstract  boolean popBackStackImmediate(String name, int flags)
          Like popBackStack(String, int), but performs the operation immediately inside of the call.
abstract  void putFragment(android.os.Bundle bundle, String key, Fragment fragment)
          Put a reference to a fragment in a Bundle.
abstract  void removeOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener)
          Remove a listener that was previously added with addOnBackStackChangedListener(OnBackStackChangedListener).
abstract  Fragment.SavedState saveFragmentInstanceState(Fragment f)
          Save the current instance state of the given Fragment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

POP_BACK_STACK_INCLUSIVE

public static final int POP_BACK_STACK_INCLUSIVE
Flag for popBackStack(String, int) and popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached. Otherwise, all entries up to but not including that entry will be removed.

See Also:
Constant Field Values
Constructor Detail

FragmentManager

public FragmentManager()
Method Detail

beginTransaction

public abstract FragmentTransaction beginTransaction()
Start a series of edit operations on the Fragments associated with this FragmentManager.

Note: A fragment transaction can only be created/committed prior to an activity saving its state. If you try to commit a transaction after FragmentActivity.onSaveInstanceState() (and prior to a following FragmentActivity.onStart or FragmentActivity.onResume(), you will get an error. This is because the framework takes care of saving your current fragments in the state, and if changes are made after the state is saved then they will be lost.


openTransaction

@Deprecated
public FragmentTransaction openTransaction()
Deprecated. 


executePendingTransactions

public abstract boolean executePendingTransactions()
After a FragmentTransaction is committed with FragmentTransaction.commit(), it is scheduled to be executed asynchronously on the process's main thread. If you want to immediately executing any such pending operations, you can call this function (only from the main thread) to do so. Note that all callbacks and other related behavior will be done from within this call, so be careful about where this is called from.

Returns:
Returns true if there were any pending transactions to be executed.

findFragmentById

public abstract Fragment findFragmentById(int id)
Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction. This first searches through fragments that are currently added to the manager's activity; if no such fragment is found, then all fragments currently on the back stack associated with this ID are searched.

Returns:
The fragment if found or null otherwise.

findFragmentByTag

public abstract Fragment findFragmentByTag(String tag)
Finds a fragment that was identified by the given tag either when inflated from XML or as supplied when added in a transaction. This first searches through fragments that are currently added to the manager's activity; if no such fragment is found, then all fragments currently on the back stack are searched.

Returns:
The fragment if found or null otherwise.

popBackStack

public abstract void popBackStack()
Pop the top state off the back stack. Returns true if there was one to pop, else false. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop.


popBackStackImmediate

public abstract boolean popBackStackImmediate()
Like popBackStack(), but performs the operation immediately inside of the call. This is like calling executePendingTransactions() afterwards.

Returns:
Returns true if there was something popped, else false.

popBackStack

public abstract void popBackStack(String name,
                                  int flags)
Pop the last fragment transition from the manager's fragment back stack. If there is nothing to pop, false is returned. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop.

Parameters:
name - If non-null, this is the name of a previous back state to look for; if found, all states up to that state will be popped. The POP_BACK_STACK_INCLUSIVE flag can be used to control whether the named state itself is popped. If null, only the top state is popped.
flags - Either 0 or POP_BACK_STACK_INCLUSIVE.

popBackStackImmediate

public abstract boolean popBackStackImmediate(String name,
                                              int flags)
Like popBackStack(String, int), but performs the operation immediately inside of the call. This is like calling executePendingTransactions() afterwards.

Returns:
Returns true if there was something popped, else false.

popBackStack

public abstract void popBackStack(int id,
                                  int flags)
Pop all back stack states up to the one with the given identifier. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop.

Parameters:
id - Identifier of the stated to be popped. If no identifier exists, false is returned. The identifier is the number returned by FragmentTransaction.commit(). The POP_BACK_STACK_INCLUSIVE flag can be used to control whether the named state itself is popped.
flags - Either 0 or POP_BACK_STACK_INCLUSIVE.

popBackStackImmediate

public abstract boolean popBackStackImmediate(int id,
                                              int flags)
Like popBackStack(int, int), but performs the operation immediately inside of the call. This is like calling executePendingTransactions() afterwards.

Returns:
Returns true if there was something popped, else false.

getBackStackEntryCount

public abstract int getBackStackEntryCount()
Return the number of entries currently in the back stack.


getBackStackEntryAt

public abstract FragmentManager.BackStackEntry getBackStackEntryAt(int index)
Return the BackStackEntry at index index in the back stack; entries start index 0 being the bottom of the stack.


addOnBackStackChangedListener

public abstract void addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener)
Add a new listener for changes to the fragment back stack.


removeOnBackStackChangedListener

public abstract void removeOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener)
Remove a listener that was previously added with addOnBackStackChangedListener(OnBackStackChangedListener).


putFragment

public abstract void putFragment(android.os.Bundle bundle,
                                 String key,
                                 Fragment fragment)
Put a reference to a fragment in a Bundle. This Bundle can be persisted as saved state, and when later restoring getFragment(Bundle, String) will return the current instance of the same fragment.

Parameters:
bundle - The bundle in which to put the fragment reference.
key - The name of the entry in the bundle.
fragment - The Fragment whose reference is to be stored.

getFragment

public abstract Fragment getFragment(android.os.Bundle bundle,
                                     String key)
Retrieve the current Fragment instance for a reference previously placed with putFragment(Bundle, String, Fragment).

Parameters:
bundle - The bundle from which to retrieve the fragment reference.
key - The name of the entry in the bundle.
Returns:
Returns the current Fragment instance that is associated with the given reference.

saveFragmentInstanceState

public abstract Fragment.SavedState saveFragmentInstanceState(Fragment f)
Save the current instance state of the given Fragment. This can be used later when creating a new instance of the Fragment and adding it to the fragment manager, to have it create itself to match the current state returned here. Note that there are limits on how this can be used:

Parameters:
f - The Fragment whose state is to be saved.
Returns:
The generated state. This will be null if there was no interesting state created by the fragment.

dump

public abstract void dump(String prefix,
                          FileDescriptor fd,
                          PrintWriter writer,
                          String[] args)
Print the FragmentManager's state into the given stream.

Parameters:
prefix - Text to print at the front of each line.
fd - The raw file descriptor that the dump is being sent to.
writer - A PrintWriter to which the dump is to be set.
args - Additional arguments to the dump request.

enableDebugLogging

public static void enableDebugLogging(boolean enabled)
Control whether the framework's internal fragment manager debugging logs are turned on. If enabled, you will see output in logcat as the framework performs fragment operations.



Copyright © 2013 Marek Kedzierski. All Rights Reserved.