Most visited

Recently visited

Fragment

public class Fragment
extends Object implements ComponentCallbacks, View.OnCreateContextMenuListener

java.lang.Object
   ↳ android.support.v4.app.Fragment
Known Direct Subclasses
Known Indirect Subclasses


Static library support version of the framework's Fragment. 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 Fragment documentation for a class overview.

The main differences when using this support version instead of the framework version are:

Summary

Nested classes

class Fragment.InstantiationException

Thrown by instantiate(Context, String, Bundle) when there is an instantiation failure. 

class Fragment.SavedState

State information that has been retrieved from a fragment instance through FragmentManager.saveFragmentInstanceState

Public constructors

Fragment()

Default constructor.

Public methods

void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args)

Print the Fragments's state into the given stream.

final boolean equals(Object o)

Subclasses can not override equals().

final FragmentActivity getActivity()

Return the FragmentActivity this fragment is currently associated with.

boolean getAllowEnterTransitionOverlap()

Returns whether the the exit transition and enter transition overlap or not.

boolean getAllowReturnTransitionOverlap()

Returns whether the the return transition and reenter transition overlap or not.

final Bundle getArguments()

Return the arguments supplied when the fragment was instantiated, if any.

final FragmentManager getChildFragmentManager()

Return a private FragmentManager for placing and managing Fragments inside of this Fragment.

Context getContext()

Return the Context this fragment is currently associated with.

Object getEnterTransition()

Returns the Transition that will be used to move Views into the initial scene.

Object getExitTransition()

Returns the Transition that will be used to move Views out of the scene when the fragment is removed, hidden, or detached when not popping the back stack.

final FragmentManager getFragmentManager()

Return the FragmentManager for interacting with fragments associated with this fragment's activity.

final Object getHost()

Return the host object of this fragment.

final int getId()

Return the identifier this fragment is known by.

LoaderManager getLoaderManager()

Return the LoaderManager for this fragment, creating it if needed.

final Fragment getParentFragment()

Returns the parent Fragment containing this Fragment.

Object getReenterTransition()

Returns the Transition that will be used to move Views in to the scene when returning due to popping a back stack.

final Resources getResources()

Return getActivity().getResources().

final boolean getRetainInstance()
Object getReturnTransition()

Returns the Transition that will be used to move Views out of the scene when the Fragment is preparing to be removed, hidden, or detached because of popping the back stack.

Object getSharedElementEnterTransition()

Returns the Transition that will be used for shared elements transferred into the content Scene.

Object getSharedElementReturnTransition()

Return the Transition that will be used for shared elements transferred back during a pop of the back stack.

final String getString(int resId, Object... formatArgs)

Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined in Formatter and format(String, Object...).

final String getString(int resId)

Return a localized string from the application's package's default string table.

final String getTag()

Get the tag name of the fragment, if specified.

final Fragment getTargetFragment()

Return the target fragment set by setTargetFragment(Fragment, int).

final int getTargetRequestCode()

Return the target request code set by setTargetFragment(Fragment, int).

final CharSequence getText(int resId)

Return a localized, styled CharSequence from the application's package's default string table.

boolean getUserVisibleHint()
View getView()

Get the root view for the fragment's layout (the one returned by onCreateView(LayoutInflater, ViewGroup, Bundle)), if provided.

final int hashCode()

Subclasses can not override hashCode().

static Fragment instantiate(Context context, String fname)

Like instantiate(Context, String, Bundle) but with a null argument Bundle.

static Fragment instantiate(Context context, String fname, Bundle args)

Create a new instance of a Fragment with the given class name.

final boolean isAdded()

Return true if the fragment is currently added to its activity.

final boolean isDetached()

Return true if the fragment has been explicitly detached from the UI.

final boolean isHidden()

Return true if the fragment has been hidden.

final boolean isInLayout()

Return true if the layout is included as part of an activity view hierarchy via the <fragment> tag.

final boolean isRemoving()

Return true if this fragment is currently being removed from its activity.

final boolean isResumed()

Return true if the fragment is in the resumed state.

final boolean isVisible()

Return true if the fragment is currently visible to the user.

void onActivityCreated(Bundle savedInstanceState)

Called when the fragment's activity has been created and this fragment's view hierarchy instantiated.

void onActivityResult(int requestCode, int resultCode, Intent data)

Receive the result from a previous call to startActivityForResult(Intent, int).

void onAttach(Activity activity)

This method is deprecated. See onAttach(Context).

void onAttach(Context context)

Called when a fragment is first attached to its context.

void onAttachFragment(Fragment childFragment)

Called when a fragment is attached as a child of this fragment.

void onConfigurationChanged(Configuration newConfig)

Called by the system when the device configuration changes while your component is running.

boolean onContextItemSelected(MenuItem item)

This hook is called whenever an item in a context menu is selected.

void onCreate(Bundle savedInstanceState)

Called to do initial creation of a fragment.

Animation onCreateAnimation(int transit, boolean enter, int nextAnim)

Called when a fragment loads an animation.

void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)

Called when a context menu for the view is about to be shown.

void onCreateOptionsMenu(Menu menu, MenuInflater inflater)

Initialize the contents of the Fragment host's standard options menu.

View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

Called to have the fragment instantiate its user interface view.

void onDestroy()

Called when the fragment is no longer in use.

void onDestroyOptionsMenu()

Called when this fragment's option menu items are no longer being included in the overall options menu.

void onDestroyView()

Called when the view previously created by onCreateView(LayoutInflater, ViewGroup, Bundle) has been detached from the fragment.

void onDetach()

Called when the fragment is no longer attached to its activity.

void onHiddenChanged(boolean hidden)

Called when the hidden state (as returned by isHidden() of the fragment has changed.

void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState)

This method is deprecated. See onInflate(Context, AttributeSet, Bundle).

void onInflate(Context context, AttributeSet attrs, Bundle savedInstanceState)

Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity.

void onLowMemory()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage.

void onMultiWindowModeChanged(boolean isInMultiWindowMode)

Called when the Fragment's activity changes from fullscreen mode to multi-window mode and visa-versa.

boolean onOptionsItemSelected(MenuItem item)

This hook is called whenever an item in your options menu is selected.

void onOptionsMenuClosed(Menu menu)

This hook is called whenever the options menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected).

void onPause()

Called when the Fragment is no longer resumed.

void onPictureInPictureModeChanged(boolean isInPictureInPictureMode)

Called by the system when the activity changes to and from picture-in-picture mode.

void onPrepareOptionsMenu(Menu menu)

Prepare the Fragment host's standard options menu to be displayed.

void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)

Callback for the result from requesting permissions.

void onResume()

Called when the fragment is visible to the user and actively running.

void onSaveInstanceState(Bundle outState)

Called to ask the fragment to save its current dynamic state, so it can later be reconstructed in a new instance of its process is restarted.

void onStart()

Called when the Fragment is visible to the user.

void onStop()

Called when the Fragment is no longer started.

void onViewCreated(View view, Bundle savedInstanceState)

Called immediately after onCreateView(LayoutInflater, ViewGroup, Bundle) has returned, but before any saved state has been restored in to the view.

void onViewStateRestored(Bundle savedInstanceState)

Called when all saved state has been restored into the view hierarchy of the fragment.

void registerForContextMenu(View view)

Registers a context menu to be shown for the given view (multiple views can show the context menu).

final void requestPermissions(String[] permissions, int requestCode)

Requests permissions to be granted to this application.

void setAllowEnterTransitionOverlap(boolean allow)

Sets whether the the exit transition and enter transition overlap or not.

void setAllowReturnTransitionOverlap(boolean allow)

Sets whether the the return transition and reenter transition overlap or not.

void setArguments(Bundle args)

Supply the construction arguments for this fragment.

void setEnterSharedElementCallback(SharedElementCallback callback)

When custom transitions are used with Fragments, the enter transition callback is called when this Fragment is attached or detached when not popping the back stack.

void setEnterTransition(Object transition)

Sets the Transition that will be used to move Views into the initial scene.

void setExitSharedElementCallback(SharedElementCallback callback)

When custom transitions are used with Fragments, the exit transition callback is called when this Fragment is attached or detached when popping the back stack.

void setExitTransition(Object transition)

Sets the Transition that will be used to move Views out of the scene when the fragment is removed, hidden, or detached when not popping the back stack.

void setHasOptionsMenu(boolean hasMenu)

Report that this fragment would like to participate in populating the options menu by receiving a call to onCreateOptionsMenu(Menu, MenuInflater) and related methods.

void setInitialSavedState(Fragment.SavedState state)

Set the initial saved state that this Fragment should restore itself from when first being constructed, as returned by FragmentManager.saveFragmentInstanceState.

void setMenuVisibility(boolean menuVisible)

Set a hint for whether this fragment's menu should be visible.

void setReenterTransition(Object transition)

Sets the Transition that will be used to move Views in to the scene when returning due to popping a back stack.

void setRetainInstance(boolean retain)

Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change).

void setReturnTransition(Object transition)

Sets the Transition that will be used to move Views out of the scene when the Fragment is preparing to be removed, hidden, or detached because of popping the back stack.

void setSharedElementEnterTransition(Object transition)

Sets the Transition that will be used for shared elements transferred into the content Scene.

void setSharedElementReturnTransition(Object transition)

Sets the Transition that will be used for shared elements transferred back during a pop of the back stack.

void setTargetFragment(Fragment fragment, int requestCode)

Optional target for this fragment.

void setUserVisibleHint(boolean isVisibleToUser)

Set a hint to the system about whether this fragment's UI is currently visible to the user.

boolean shouldShowRequestPermissionRationale(String permission)

Gets whether you should show UI with rationale for requesting a permission.

void startActivity(Intent intent)

Call startActivity(Intent) from the fragment's containing Activity.

void startActivity(Intent intent, Bundle options)

Call startActivity(Intent, Bundle) from the fragment's containing Activity.

void startActivityForResult(Intent intent, int requestCode)

Call startActivityForResult(Intent, int) from the fragment's containing Activity.

void startActivityForResult(Intent intent, int requestCode, Bundle options)

Call startActivityForResult(Intent, int, Bundle) from the fragment's containing Activity.

void startIntentSenderForResult(IntentSender intent, int requestCode, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)

Call startIntentSenderForResult(IntentSender, int, Intent, int, int, int, Bundle) from the fragment's containing Activity.

String toString()

Returns a string representation of the object.

void unregisterForContextMenu(View view)

Prevents a context menu to be shown for the given view.

Inherited methods

From class java.lang.Object
From interface android.content.ComponentCallbacks
From interface android.view.View.OnCreateContextMenuListener

Public constructors

Fragment

Fragment ()

Default constructor. Every fragment must have an empty constructor, so it can be instantiated when restoring its activity's state. It is strongly recommended that subclasses do not have other constructors with parameters, since these constructors will not be called when the fragment is re-instantiated; instead, arguments can be supplied by the caller with setArguments(Bundle) and later retrieved by the Fragment with getArguments().

Applications should generally not implement a constructor. The first place application code an run where the fragment is ready to be used is in onAttach(Activity), the point where the fragment is actually associated with its activity. Some applications may also want to implement onInflate(Activity, AttributeSet, Bundle) to retrieve attributes from a layout resource, though should take care here because this happens for the fragment is attached to its activity.

Public methods

dump

void dump (String prefix, 
                FileDescriptor fd, 
                PrintWriter writer, 
                String[] args)

Print the Fragments's state into the given stream.

Parameters
prefix String: Text to print at the front of each line.
fd FileDescriptor: The raw file descriptor that the dump is being sent to.
writer PrintWriter: The PrintWriter to which you should dump your state. This will be closed for you after you return.
args String: additional arguments to the dump request.

equals

boolean equals (Object o)

Subclasses can not override equals().

Parameters
o Object: the reference object with which to compare.
Returns
boolean true if this object is the same as the obj argument; false otherwise.

getActivity

FragmentActivity getActivity ()

Return the FragmentActivity this fragment is currently associated with. May return null if the fragment is associated with a Context instead.

Returns
FragmentActivity

getAllowEnterTransitionOverlap

boolean getAllowEnterTransitionOverlap ()

Returns whether the the exit transition and enter transition overlap or not. When true, the enter transition will start as soon as possible. When false, the enter transition will wait until the exit transition completes before starting.

Returns
boolean true when the enter transition should start as soon as possible or false to when it should wait until the exiting transition completes.

getAllowReturnTransitionOverlap

boolean getAllowReturnTransitionOverlap ()

Returns whether the the return transition and reenter transition overlap or not. When true, the reenter transition will start as soon as possible. When false, the reenter transition will wait until the return transition completes before starting.

Returns
boolean true to start the reenter transition when possible or false to wait until the return transition completes.

getArguments

Bundle getArguments ()

Return the arguments supplied when the fragment was instantiated, if any.

Returns
Bundle

getChildFragmentManager

FragmentManager getChildFragmentManager ()

Return a private FragmentManager for placing and managing Fragments inside of this Fragment.

Returns
FragmentManager

getContext

Context getContext ()

Return the Context this fragment is currently associated with.

Returns
Context

getEnterTransition

Object getEnterTransition ()

Returns the Transition that will be used to move Views into the initial scene. The entering Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as entering is governed by changing visibility from INVISIBLE to VISIBLE.

Returns
Object the Transition to use to move Views into the initial Scene.

getExitTransition

Object getExitTransition ()

Returns the Transition that will be used to move Views out of the scene when the fragment is removed, hidden, or detached when not popping the back stack. The exiting Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as exiting is governed by changing visibility from VISIBLE to INVISIBLE. If transition is null, the views will remain unaffected.

Returns
Object the Transition to use to move Views out of the Scene when the Fragment is being closed not due to popping the back stack.

getFragmentManager

FragmentManager getFragmentManager ()

Return the FragmentManager for interacting with fragments associated with this fragment's activity. Note that this will be non-null slightly before getActivity(), during the time from when the fragment is placed in a FragmentTransaction until it is committed and attached to its activity.

If this Fragment is a child of another Fragment, the FragmentManager returned here will be the parent's getChildFragmentManager().

Returns
FragmentManager

getHost

Object getHost ()

Return the host object of this fragment. May return null if the fragment isn't currently being hosted.

Returns
Object

getId

int getId ()

Return the identifier this fragment is known by. This is either the android:id value supplied in a layout or the container view ID supplied when adding the fragment.

Returns
int

getLoaderManager

LoaderManager getLoaderManager ()

Return the LoaderManager for this fragment, creating it if needed.

Returns
LoaderManager

getParentFragment

Fragment getParentFragment ()

Returns the parent Fragment containing this Fragment. If this Fragment is attached directly to an Activity, returns null.

Returns
Fragment

getReenterTransition

Object getReenterTransition ()

Returns the Transition that will be used to move Views in to the scene when returning due to popping a back stack. The entering Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as exiting is governed by changing visibility from VISIBLE to INVISIBLE. If transition is null, the views will remain unaffected. If nothing is set, the default will be to use the same transition as setExitTransition(Object).

Returns
Object the Transition to use to move Views into the scene when reentering from a previously-started Activity.

getResources

Resources getResources ()

Return getActivity().getResources().

Returns
Resources

getRetainInstance

boolean getRetainInstance ()

Returns
boolean

getReturnTransition

Object getReturnTransition ()

Returns the Transition that will be used to move Views out of the scene when the Fragment is preparing to be removed, hidden, or detached because of popping the back stack. The exiting Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as entering is governed by changing visibility from VISIBLE to INVISIBLE. If transition is null, entering Views will remain unaffected.

Returns
Object the Transition to use to move Views out of the Scene when the Fragment is preparing to close.

getSharedElementEnterTransition

Object getSharedElementEnterTransition ()

Returns the Transition that will be used for shared elements transferred into the content Scene. Typical Transitions will affect size and location, such as ChangeBounds. A null value will cause transferred shared elements to blink to the final position.

Returns
Object The Transition to use for shared elements transferred into the content Scene.

getSharedElementReturnTransition

Object getSharedElementReturnTransition ()

Return the Transition that will be used for shared elements transferred back during a pop of the back stack. This Transition acts in the leaving Fragment. Typical Transitions will affect size and location, such as ChangeBounds. A null value will cause transferred shared elements to blink to the final position. If no value is set, the default will be to use the same value as setSharedElementEnterTransition(Object).

Returns
Object The Transition to use for shared elements transferred out of the content Scene.

getString

String getString (int resId, 
                Object... formatArgs)

Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined in Formatter and format(String, Object...).

Parameters
resId int: Resource id for the format string
formatArgs Object: The format arguments that will be used for substitution.
Returns
String

getString

String getString (int resId)

Return a localized string from the application's package's default string table.

Parameters
resId int: Resource id for the string
Returns
String

getTag

String getTag ()

Get the tag name of the fragment, if specified.

Returns
String

getTargetFragment

Fragment getTargetFragment ()

Return the target fragment set by setTargetFragment(Fragment, int).

Returns
Fragment

getTargetRequestCode

int getTargetRequestCode ()

Return the target request code set by setTargetFragment(Fragment, int).

Returns
int

getText

CharSequence getText (int resId)

Return a localized, styled CharSequence from the application's package's default string table.

Parameters
resId int: Resource id for the CharSequence text
Returns
CharSequence

getUserVisibleHint

boolean getUserVisibleHint ()

Returns
boolean The current value of the user-visible hint on this fragment.

See also:

getView

View getView ()

Get the root view for the fragment's layout (the one returned by onCreateView(LayoutInflater, ViewGroup, Bundle)), if provided.

Returns
View The fragment's root view, or null if it has no layout.

hashCode

int hashCode ()

Subclasses can not override hashCode().

Returns
int a hash code value for this object.

instantiate

Fragment instantiate (Context context, 
                String fname)

Like instantiate(Context, String, Bundle) but with a null argument Bundle.

Parameters
context Context
fname String
Returns
Fragment

instantiate

Fragment instantiate (Context context, 
                String fname, 
                Bundle args)

Create a new instance of a Fragment with the given class name. This is the same as calling its empty constructor.

Parameters
context Context: The calling context being used to instantiate the fragment. This is currently just used to get its ClassLoader.
fname String: The class name of the fragment to instantiate.
args Bundle: Bundle of arguments to supply to the fragment, which it can retrieve with getArguments(). May be null.
Returns
Fragment Returns a new fragment instance.
Throws
InstantiationException If there is a failure in instantiating the given fragment class. This is a runtime exception; it is not normally expected to happen.

isAdded

boolean isAdded ()

Return true if the fragment is currently added to its activity.

Returns
boolean

isDetached

boolean isDetached ()

Return true if the fragment has been explicitly detached from the UI. That is, FragmentTransaction.detach(Fragment) has been used on it.

Returns
boolean

isHidden

boolean isHidden ()

Return true if the fragment has been hidden. By default fragments are shown. You can find out about changes to this state with onHiddenChanged(boolean). Note that the hidden state is orthogonal to other states -- that is, to be visible to the user, a fragment must be both started and not hidden.

Returns
boolean

isInLayout

boolean isInLayout ()

Return true if the layout is included as part of an activity view hierarchy via the <fragment> tag. This will always be true when fragments are created through the <fragment> tag, except in the case where an old fragment is restored from a previous state and it does not appear in the layout of the current state.

Returns
boolean

isRemoving

boolean isRemoving ()

Return true if this fragment is currently being removed from its activity. This is not whether its activity is finishing, but rather whether it is in the process of being removed from its activity.

Returns
boolean

isResumed

boolean isResumed ()

Return true if the fragment is in the resumed state. This is true for the duration of onResume() and onPause() as well.

Returns
boolean

isVisible

boolean isVisible ()

Return true if the fragment is currently visible to the user. This means it: (1) has been added, (2) has its view attached to the window, and (3) is not hidden.

Returns
boolean

onActivityCreated

void onActivityCreated (Bundle savedInstanceState)

Called when the fragment's activity has been created and this fragment's view hierarchy instantiated. It can be used to do final initialization once these pieces are in place, such as retrieving views or restoring state. It is also useful for fragments that use setRetainInstance(boolean) to retain their instance, as this callback tells the fragment when it is fully associated with the new activity instance. This is called after onCreateView(LayoutInflater, ViewGroup, Bundle) and before onViewStateRestored(Bundle).

Parameters
savedInstanceState Bundle: If the fragment is being re-created from a previous saved state, this is the state.

onActivityResult

void onActivityResult (int requestCode, 
                int resultCode, 
                Intent data)

Receive the result from a previous call to startActivityForResult(Intent, int). This follows the related Activity API as described there in onActivityResult(int, int, Intent).

Parameters
requestCode int: The integer request code originally supplied to startActivityForResult(), allowing you to identify who this result came from.
resultCode int: The integer result code returned by the child activity through its setResult().
data Intent: An Intent, which can return result data to the caller (various data can be attached to Intent "extras").

onAttach

void onAttach (Activity activity)

This method is deprecated.
See onAttach(Context).

Called when a fragment is first attached to its activity. onCreate(Bundle) will be called after this.

Parameters
activity Activity

onAttach

void onAttach (Context context)

Called when a fragment is first attached to its context. onCreate(Bundle) will be called after this.

Parameters
context Context

onAttachFragment

void onAttachFragment (Fragment childFragment)

Called when a fragment is attached as a child of this fragment.

This is called after the attached fragment's onAttach and before the attached fragment's onCreate if the fragment has not yet had a previous call to onCreate.

Parameters
childFragment Fragment: child fragment being attached

onConfigurationChanged

void onConfigurationChanged (Configuration newConfig)

Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources.

At the time that this function has been called, your Resources object will have been updated to return resource values matching the new configuration.

For more information, read Handling Runtime Changes.

Parameters
newConfig Configuration: The new device configuration.

onContextItemSelected

boolean onContextItemSelected (MenuItem item)

This hook is called whenever an item in a context menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.

Use getMenuInfo() to get extra information set by the View that added this menu item.

Derived classes should call through to the base class for it to perform the default menu handling.

Parameters
item MenuItem: The context menu item that was selected.
Returns
boolean boolean Return false to allow normal context menu processing to proceed, true to consume it here.

onCreate

void onCreate (Bundle savedInstanceState)

Called to do initial creation of a fragment. This is called after onAttach(Activity) and before onCreateView(LayoutInflater, ViewGroup, Bundle).

Note that this can be called while the fragment's activity is still in the process of being created. As such, you can not rely on things like the activity's content view hierarchy being initialized at this point. If you want to do work once the activity itself is created, see onActivityCreated(Bundle).

Any restored child fragments will be created before the base Fragment.onCreate method returns.

Parameters
savedInstanceState Bundle: If the fragment is being re-created from a previous saved state, this is the state.

onCreateAnimation

Animation onCreateAnimation (int transit, 
                boolean enter, 
                int nextAnim)

Called when a fragment loads an animation.

Parameters
transit int
enter boolean
nextAnim int
Returns
Animation

onCreateContextMenu

void onCreateContextMenu (ContextMenu menu, 
                View v, 
                ContextMenu.ContextMenuInfo menuInfo)

Called when a context menu for the view is about to be shown. Unlike onCreateOptionsMenu(Menu, MenuInflater), this will be called every time the context menu is about to be shown and should be populated for the view (or item inside the view for AdapterView subclasses, this can be found in the menuInfo)).

Use onContextItemSelected(android.view.MenuItem) to know when an item has been selected.

The default implementation calls up to Activity.onCreateContextMenu, though you can not call this implementation if you don't want that behavior.

It is not safe to hold onto the context menu after this method returns. Called when the context menu for this view is being built. It is not safe to hold onto the menu after this method returns.

Parameters
menu ContextMenu: The context menu that is being built
v View: The view for which the context menu is being built
menuInfo ContextMenu.ContextMenuInfo: Extra information about the item for which the context menu should be shown. This information will vary depending on the class of v.

onCreateOptionsMenu

void onCreateOptionsMenu (Menu menu, 
                MenuInflater inflater)

Initialize the contents of the Fragment host's standard options menu. You should place your menu items in to menu. For this method to be called, you must have first called setHasOptionsMenu(boolean). See Activity.onCreateOptionsMenu for more information.

Parameters
menu Menu: The options menu in which you place your items.
inflater MenuInflater

See also:

onCreateView

View onCreateView (LayoutInflater inflater, 
                ViewGroup container, 
                Bundle savedInstanceState)

Called to have the fragment instantiate its user interface view. This is optional, and non-graphical fragments can return null (which is the default implementation). This will be called between onCreate(Bundle) and onActivityCreated(Bundle).

If you return a View from here, you will later be called in onDestroyView() when the view is being released.

Parameters
inflater LayoutInflater: The LayoutInflater object that can be used to inflate any views in the fragment,
container ViewGroup: If non-null, this is the parent view that the fragment's UI should be attached to. The fragment should not add the view itself, but this can be used to generate the LayoutParams of the view.
savedInstanceState Bundle: If non-null, this fragment is being re-constructed from a previous saved state as given here.
Returns
View Return the View for the fragment's UI, or null.

onDestroy

void onDestroy ()

Called when the fragment is no longer in use. This is called after onStop() and before onDetach().

onDestroyOptionsMenu

void onDestroyOptionsMenu ()

Called when this fragment's option menu items are no longer being included in the overall options menu. Receiving this call means that the menu needed to be rebuilt, but this fragment's items were not included in the newly built menu (its onCreateOptionsMenu(Menu, MenuInflater) was not called).

onDestroyView

void onDestroyView ()

Called when the view previously created by onCreateView(LayoutInflater, ViewGroup, Bundle) has been detached from the fragment. The next time the fragment needs to be displayed, a new view will be created. This is called after onStop() and before onDestroy(). It is called regardless of whether onCreateView(LayoutInflater, ViewGroup, Bundle) returned a non-null view. Internally it is called after the view's state has been saved but before it has been removed from its parent.

onDetach

void onDetach ()

Called when the fragment is no longer attached to its activity. This is called after onDestroy().

onHiddenChanged

void onHiddenChanged (boolean hidden)

Called when the hidden state (as returned by isHidden() of the fragment has changed. Fragments start out not hidden; this will be called whenever the fragment changes state from that.

Parameters
hidden boolean: True if the fragment is now hidden, false if it is not visible.

onInflate

void onInflate (Activity activity, 
                AttributeSet attrs, 
                Bundle savedInstanceState)

This method is deprecated.
See onInflate(Context, AttributeSet, Bundle).

Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity.

Parameters
activity Activity
attrs AttributeSet
savedInstanceState Bundle

onInflate

void onInflate (Context context, 
                AttributeSet attrs, 
                Bundle savedInstanceState)

Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity. This may be called immediately after the fragment is created from a tag in a layout file. Note this is before the fragment's onAttach(Activity) has been called; all you should do here is parse the attributes and save them away.

This is called every time the fragment is inflated, even if it is being inflated into a new instance with saved state. It typically makes sense to re-parse the parameters each time, to allow them to change with different configurations.

Here is a typical implementation of a fragment that can take parameters both through attributes supplied here as well from getArguments():

public static class MyFragment extends Fragment {
    CharSequence mLabel;

    /**
     * Create a new instance of MyFragment that will be initialized
     * with the given arguments.
     */
    static MyFragment newInstance(CharSequence label) {
        MyFragment f = new MyFragment();
        Bundle b = new Bundle();
        b.putCharSequence("label", label);
        f.setArguments(b);
        return f;
    }

    /**
     * Parse attributes during inflation from a view hierarchy into the
     * arguments we handle.
     */
    @Override public void onInflate(Activity activity, AttributeSet attrs,
            Bundle savedInstanceState) {
        super.onInflate(activity, attrs, savedInstanceState);

        TypedArray a = activity.obtainStyledAttributes(attrs,
                R.styleable.FragmentArguments);
        mLabel = a.getText(R.styleable.FragmentArguments_android_label);
        a.recycle();
    }

    /**
     * During creation, if arguments have been supplied to the fragment
     * then parse those out.
     */
    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Bundle args = getArguments();
        if (args != null) {
            mLabel = args.getCharSequence("label", mLabel);
        }
    }

    /**
     * Create the view for this fragment, using the arguments given to it.
     */
    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.hello_world, container, false);
        View tv = v.findViewById(R.id.text);
        ((TextView)tv).setText(mLabel != null ? mLabel : "(no label)");
        tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
        return v;
    }
}

Note that parsing the XML attributes uses a "styleable" resource. The declaration for the styleable used here is:

<declare-styleable name="FragmentArguments">
    <attr name="android:label" />
</declare-styleable>

The fragment can then be declared within its activity's content layout through a tag like this:

<fragment class="com.example.android.apis.app.FragmentArguments$MyFragment"
        android:id="@+id/embedded"
        android:layout_width="0px" android:layout_height="wrap_content"
        android:layout_weight="1"
        android:label="@string/fragment_arguments_embedded" />

This fragment can also be created dynamically from arguments given at runtime in the arguments Bundle; here is an example of doing so at creation of the containing activity:

@Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_arguments);

    if (savedInstanceState == null) {
        // First-time init; create fragment to embed in activity.
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        Fragment newFragment = MyFragment.newInstance("From Arguments");
        ft.add(R.id.created, newFragment);
        ft.commit();
    }
}

Parameters
context Context: The Activity that is inflating this fragment.
attrs AttributeSet: The attributes at the tag where the fragment is being created.
savedInstanceState Bundle: If the fragment is being re-created from a previous saved state, this is the state.

onLowMemory

void onLowMemory ()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. While the exact point at which this will be called is not defined, generally it will happen when all background process have been killed. That is, before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing.

You should implement this method to release any caches or other unnecessary resources you may be holding on to. The system will perform a garbage collection for you after returning from this method.

Preferably, you should implement onTrimMemory(int) from ComponentCallbacks2 to incrementally unload your resources based on various levels of memory demands. That API is available for API level 14 and higher, so you should only use this onLowMemory() method as a fallback for older versions, which can be treated the same as onTrimMemory(int) with the TRIM_MEMORY_COMPLETE level.

onMultiWindowModeChanged

void onMultiWindowModeChanged (boolean isInMultiWindowMode)

Called when the Fragment's activity changes from fullscreen mode to multi-window mode and visa-versa. This is generally tied to onMultiWindowModeChanged(boolean) of the containing Activity.

Parameters
isInMultiWindowMode boolean: True if the activity is in multi-window mode.

onOptionsItemSelected

boolean onOptionsItemSelected (MenuItem item)

This hook is called whenever an item in your options menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.

Derived classes should call through to the base class for it to perform the default menu handling.

Parameters
item MenuItem: The menu item that was selected.
Returns
boolean boolean Return false to allow normal menu processing to proceed, true to consume it here.

See also:

onOptionsMenuClosed

void onOptionsMenuClosed (Menu menu)

This hook is called whenever the options menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected).

Parameters
menu Menu: The options menu as last shown or first initialized by onCreateOptionsMenu().

onPause

void onPause ()

Called when the Fragment is no longer resumed. This is generally tied to Activity.onPause of the containing Activity's lifecycle.

onPictureInPictureModeChanged

void onPictureInPictureModeChanged (boolean isInPictureInPictureMode)

Called by the system when the activity changes to and from picture-in-picture mode. This is generally tied to onPictureInPictureModeChanged(boolean) of the containing Activity.

Parameters
isInPictureInPictureMode boolean: True if the activity is in picture-in-picture mode.

onPrepareOptionsMenu

void onPrepareOptionsMenu (Menu menu)

Prepare the Fragment host's standard options menu to be displayed. This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents. See Activity.onPrepareOptionsMenu for more information.

Parameters
menu Menu: The options menu as last shown or first initialized by onCreateOptionsMenu().

See also:

onRequestPermissionsResult

void onRequestPermissionsResult (int requestCode, 
                String[] permissions, 
                int[] grantResults)

Callback for the result from requesting permissions. This method is invoked for every call on requestPermissions(String[], int).

Note: It is possible that the permissions request interaction with the user is interrupted. In this case you will receive empty permissions and results arrays which should be treated as a cancellation.

Parameters
requestCode int: The request code passed in requestPermissions(String[], int).
permissions String: The requested permissions. Never null.
grantResults int: The grant results for the corresponding permissions which is either PERMISSION_GRANTED or PERMISSION_DENIED. Never null.

See also:

onResume

void onResume ()

Called when the fragment is visible to the user and actively running. This is generally tied to Activity.onResume of the containing Activity's lifecycle.

onSaveInstanceState

void onSaveInstanceState (Bundle outState)

Called to ask the fragment to save its current dynamic state, so it can later be reconstructed in a new instance of its process is restarted. If a new instance of the fragment later needs to be created, the data you place in the Bundle here will be available in the Bundle given to onCreate(Bundle), onCreateView(LayoutInflater, ViewGroup, Bundle), and onActivityCreated(Bundle).

This corresponds to Activity.onSaveInstanceState(Bundle) and most of the discussion there applies here as well. Note however: this method may be called at any time before onDestroy(). There are many situations where a fragment may be mostly torn down (such as when placed on the back stack with no UI showing), but its state will not be saved until its owning activity actually needs to save its state.

Parameters
outState Bundle: Bundle in which to place your saved state.

onStart

void onStart ()

Called when the Fragment is visible to the user. This is generally tied to Activity.onStart of the containing Activity's lifecycle.

onStop

void onStop ()

Called when the Fragment is no longer started. This is generally tied to Activity.onStop of the containing Activity's lifecycle.

onViewCreated

void onViewCreated (View view, 
                Bundle savedInstanceState)

Called immediately after onCreateView(LayoutInflater, ViewGroup, Bundle) has returned, but before any saved state has been restored in to the view. This gives subclasses a chance to initialize themselves once they know their view hierarchy has been completely created. The fragment's view hierarchy is not however attached to its parent at this point.

Parameters
view View: The View returned by onCreateView(LayoutInflater, ViewGroup, Bundle).
savedInstanceState Bundle: If non-null, this fragment is being re-constructed from a previous saved state as given here.

onViewStateRestored

void onViewStateRestored (Bundle savedInstanceState)

Called when all saved state has been restored into the view hierarchy of the fragment. This can be used to do initialization based on saved state that you are letting the view hierarchy track itself, such as whether check box widgets are currently checked. This is called after onActivityCreated(Bundle) and before onStart().

Parameters
savedInstanceState Bundle: If the fragment is being re-created from a previous saved state, this is the state.

registerForContextMenu

void registerForContextMenu (View view)

Registers a context menu to be shown for the given view (multiple views can show the context menu). This method will set the View.OnCreateContextMenuListener on the view to this fragment, so onCreateContextMenu(ContextMenu, View, ContextMenuInfo) will be called when it is time to show the context menu.

Parameters
view View: The view that should show a context menu.

See also:

requestPermissions

void requestPermissions (String[] permissions, 
                int requestCode)

Requests permissions to be granted to this application. These permissions must be requested in your manifest, they should not be granted to your app, and they should have protection level #PROTECTION_DANGEROUS dangerous, regardless whether they are declared by the platform or a third-party app.

Normal permissions PROTECTION_NORMAL are granted at install time if requested in the manifest. Signature permissions PROTECTION_SIGNATURE are granted at install time if requested in the manifest and the signature of your app matches the signature of the app declaring the permissions.

If your app does not have the requested permissions the user will be presented with UI for accepting them. After the user has accepted or rejected the requested permissions you will receive a callback on onRequestPermissionsResult(int, String[], int[]) reporting whether the permissions were granted or not.

Note that requesting a permission does not guarantee it will be granted and your app should be able to run without having this permission.

This method may start an activity allowing the user to choose which permissions to grant and which to reject. Hence, you should be prepared that your activity may be paused and resumed. Further, granting some permissions may require a restart of you application. In such a case, the system will recreate the activity stack before delivering the result to onRequestPermissionsResult(int, String[], int[]).

When checking whether you have a permission you should use checkSelfPermission(String).

Calling this API for permissions already granted to your app would show UI to the user to decided whether the app can still hold these permissions. This can be useful if the way your app uses the data guarded by the permissions changes significantly.

A sample permissions request looks like this:

private void showContacts() { if (getActivity().checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, PERMISSIONS_REQUEST_READ_CONTACTS); } else { doShowContacts(); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == PERMISSIONS_REQUEST_READ_CONTACTS && grantResults[0] == PackageManager.PERMISSION_GRANTED) { doShowContacts(); } }

Parameters
permissions String: The requested permissions.
requestCode int: Application specific request code to match with a result reported to onRequestPermissionsResult(int, String[], int[]).

See also:

setAllowEnterTransitionOverlap

void setAllowEnterTransitionOverlap (boolean allow)

Sets whether the the exit transition and enter transition overlap or not. When true, the enter transition will start as soon as possible. When false, the enter transition will wait until the exit transition completes before starting.

Parameters
allow boolean: true to start the enter transition when possible or false to wait until the exiting transition completes.

setAllowReturnTransitionOverlap

void setAllowReturnTransitionOverlap (boolean allow)

Sets whether the the return transition and reenter transition overlap or not. When true, the reenter transition will start as soon as possible. When false, the reenter transition will wait until the return transition completes before starting.

Parameters
allow boolean: true to start the reenter transition when possible or false to wait until the return transition completes.

setArguments

void setArguments (Bundle args)

Supply the construction arguments for this fragment. This can only be called before the fragment has been attached to its activity; that is, you should call it immediately after constructing the fragment. The arguments supplied here will be retained across fragment destroy and creation.

Parameters
args Bundle

setEnterSharedElementCallback

void setEnterSharedElementCallback (SharedElementCallback callback)

When custom transitions are used with Fragments, the enter transition callback is called when this Fragment is attached or detached when not popping the back stack.

Parameters
callback SharedElementCallback: Used to manipulate the shared element transitions on this Fragment when added not as a pop from the back stack.

setEnterTransition

void setEnterTransition (Object transition)

Sets the Transition that will be used to move Views into the initial scene. The entering Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as entering is governed by changing visibility from INVISIBLE to VISIBLE. If transition is null, entering Views will remain unaffected.

Parameters
transition Object: The Transition to use to move Views into the initial Scene.

setExitSharedElementCallback

void setExitSharedElementCallback (SharedElementCallback callback)

When custom transitions are used with Fragments, the exit transition callback is called when this Fragment is attached or detached when popping the back stack.

Parameters
callback SharedElementCallback: Used to manipulate the shared element transitions on this Fragment when added as a pop from the back stack.

setExitTransition

void setExitTransition (Object transition)

Sets the Transition that will be used to move Views out of the scene when the fragment is removed, hidden, or detached when not popping the back stack. The exiting Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as exiting is governed by changing visibility from VISIBLE to INVISIBLE. If transition is null, the views will remain unaffected.

Parameters
transition Object: The Transition to use to move Views out of the Scene when the Fragment is being closed not due to popping the back stack. transition must be an android.transition.Transition.

setHasOptionsMenu

void setHasOptionsMenu (boolean hasMenu)

Report that this fragment would like to participate in populating the options menu by receiving a call to onCreateOptionsMenu(Menu, MenuInflater) and related methods.

Parameters
hasMenu boolean: If true, the fragment has menu items to contribute.

setInitialSavedState

void setInitialSavedState (Fragment.SavedState state)

Set the initial saved state that this Fragment should restore itself from when first being constructed, as returned by FragmentManager.saveFragmentInstanceState.

Parameters
state Fragment.SavedState: The state the fragment should be restored from.

setMenuVisibility

void setMenuVisibility (boolean menuVisible)

Set a hint for whether this fragment's menu should be visible. This is useful if you know that a fragment has been placed in your view hierarchy so that the user can not currently seen it, so any menu items it has should also not be shown.

Parameters
menuVisible boolean: The default is true, meaning the fragment's menu will be shown as usual. If false, the user will not see the menu.

setReenterTransition

void setReenterTransition (Object transition)

Sets the Transition that will be used to move Views in to the scene when returning due to popping a back stack. The entering Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as exiting is governed by changing visibility from VISIBLE to INVISIBLE. If transition is null, the views will remain unaffected. If nothing is set, the default will be to use the same transition as setExitTransition(Object).

Parameters
transition Object: The Transition to use to move Views into the scene when reentering from a previously-started Activity. transition must be an android.transition.Transition.

setRetainInstance

void setRetainInstance (boolean retain)

Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated:

Parameters
retain boolean

setReturnTransition

void setReturnTransition (Object transition)

Sets the Transition that will be used to move Views out of the scene when the Fragment is preparing to be removed, hidden, or detached because of popping the back stack. The exiting Views will be those that are regular Views or ViewGroups that have isTransitionGroup() return true. Typical Transitions will extend Visibility as entering is governed by changing visibility from VISIBLE to INVISIBLE. If transition is null, entering Views will remain unaffected. If nothing is set, the default will be to use the same value as set in setEnterTransition(Object).

Parameters
transition Object: The Transition to use to move Views out of the Scene when the Fragment is preparing to close. transition must be an android.transition.Transition.

setSharedElementEnterTransition

void setSharedElementEnterTransition (Object transition)

Sets the Transition that will be used for shared elements transferred into the content Scene. Typical Transitions will affect size and location, such as ChangeBounds. A null value will cause transferred shared elements to blink to the final position.

Parameters
transition Object: The Transition to use for shared elements transferred into the content Scene. transition must be an android.transition.Transition.

setSharedElementReturnTransition

void setSharedElementReturnTransition (Object transition)

Sets the Transition that will be used for shared elements transferred back during a pop of the back stack. This Transition acts in the leaving Fragment. Typical Transitions will affect size and location, such as ChangeBounds. A null value will cause transferred shared elements to blink to the final position. If no value is set, the default will be to use the same value as setSharedElementEnterTransition(Object).

Parameters
transition Object: The Transition to use for shared elements transferred out of the content Scene. transition must be an android.transition.Transition.

setTargetFragment

void setTargetFragment (Fragment fragment, 
                int requestCode)

Optional target for this fragment. This may be used, for example, if this fragment is being started by another, and when done wants to give a result back to the first. The target set here is retained across instances via FragmentManager.putFragment().

Parameters
fragment Fragment: The fragment that is the target of this one.
requestCode int: Optional request code, for convenience if you are going to call back with onActivityResult(int, int, Intent).

setUserVisibleHint

void setUserVisibleHint (boolean isVisibleToUser)

Set a hint to the system about whether this fragment's UI is currently visible to the user. This hint defaults to true and is persistent across fragment instance state save and restore.

An app may set this to false to indicate that the fragment's UI is scrolled out of visibility or is otherwise not directly visible to the user. This may be used by the system to prioritize operations such as fragment lifecycle updates or loader ordering behavior.

Parameters
isVisibleToUser boolean: true if this fragment's UI is currently visible to the user (default), false if it is not.

shouldShowRequestPermissionRationale

boolean shouldShowRequestPermissionRationale (String permission)

Gets whether you should show UI with rationale for requesting a permission. You should do this only if you do not have the permission and the context in which the permission is requested does not clearly communicate to the user what would be the benefit from granting this permission.

For example, if you write a camera app, requesting the camera permission would be expected by the user and no rationale for why it is requested is needed. If however, the app needs location for tagging photos then a non-tech savvy user may wonder how location is related to taking photos. In this case you may choose to show UI with rationale of requesting this permission.

Parameters
permission String: A permission your app wants to request.
Returns
boolean Whether you can show permission rationale UI.

See also:

startActivity

void startActivity (Intent intent)

Call startActivity(Intent) from the fragment's containing Activity.

Parameters
intent Intent

startActivity

void startActivity (Intent intent, 
                Bundle options)

Call startActivity(Intent, Bundle) from the fragment's containing Activity.

Parameters
intent Intent
options Bundle

startActivityForResult

void startActivityForResult (Intent intent, 
                int requestCode)

Call startActivityForResult(Intent, int) from the fragment's containing Activity.

Parameters
intent Intent
requestCode int

startActivityForResult

void startActivityForResult (Intent intent, 
                int requestCode, 
                Bundle options)

Call startActivityForResult(Intent, int, Bundle) from the fragment's containing Activity.

Parameters
intent Intent
requestCode int
options Bundle

startIntentSenderForResult

void startIntentSenderForResult (IntentSender intent, 
                int requestCode, 
                Intent fillInIntent, 
                int flagsMask, 
                int flagsValues, 
                int extraFlags, 
                Bundle options)

Call startIntentSenderForResult(IntentSender, int, Intent, int, int, int, Bundle) from the fragment's containing Activity.

Parameters
intent IntentSender
requestCode int
fillInIntent Intent
flagsMask int
flagsValues int
extraFlags int
options Bundle
Throws
IntentSender.SendIntentException

toString

String toString ()

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

unregisterForContextMenu

void unregisterForContextMenu (View view)

Prevents a context menu to be shown for the given view. This method will remove the View.OnCreateContextMenuListener on the view.

Parameters
view View: The view that should stop showing a context menu.

See also:

Hooray!