ListFragment


public class ListFragment
extends Fragment

java.lang.Object
   ↳ android.app.Fragment
     ↳ android.app.ListFragment


This class was deprecated in API level 28.
Use the Support Library ListFragment for consistent behavior across all devices and access to Lifecycle.

A fragment that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item.

ListFragment hosts a ListView object that can be bound to different data sources, typically either an array or a Cursor holding query results. Binding, screen layout, and row layout are discussed in the following sections.

Screen Layout

ListFragment has a default layout that consists of a single list view. However, if you desire, you can customize the fragment layout by returning your own view hierarchy from onCreateView(LayoutInflater, ViewGroup, Bundle). To do this, your view hierarchy must contain a ListView object with the id "@android:id/list" (or R.id.list if it's in code)

Optionally, your view hierarchy can contain another view object of any type to display when the list view is empty. This "empty list" notifier must have an id "android:empty". Note that when an empty view is present, the list view will be hidden when there is no data to display.

The following code demonstrates an (ugly) custom list layout. It has a list with a green background, and an alternate red "no data" message.

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="8dp"
         android:paddingRight="8dp">

     <ListView android:id="@id/android:list"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#00FF00"
               android:layout_weight="1"
               android:drawSelectorOnTop="false"/>

     <TextView android:id="@id/android:empty"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#FF0000"
               android:text="No data"/>
 </LinearLayout>
 

Row Layout

You can specify the layout of individual rows in the list. You do this by specifying a layout resource in the ListAdapter object hosted by the fragment (the ListAdapter binds the ListView to the data; more on this later).

A ListAdapter constructor takes a parameter that specifies a layout resource for each row. It also has two additional parameters that let you specify which data field to associate with which object in the row layout resource. These two parameters are typically parallel arrays.

Android provides some standard row layout resources. These are in the R.layout class, and have names such as simple_list_item_1, simple_list_item_2, and two_line_list_item. The following layout XML is the source for the resource two_line_list_item, which displays two data fields,one above the other, for each list row.

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">

     <TextView android:id="@+id/text1"
         android:textSize="16sp"
         android:textStyle="bold"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>

     <TextView android:id="@+id/text2"
         android:textSize="16sp"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
 </LinearLayout>
 

You must identify the data bound to each TextView object in this layout. The syntax for this is discussed in the next section.

Binding to Data

You bind the ListFragment's ListView object to data using a class that implements the ListAdapter interface. Android provides two standard list adapters: SimpleAdapter for static data (Maps), and SimpleCursorAdapter for Cursor query results.

You must use ListFragment.setListAdapter() to associate the list with an adapter. Do not directly call ListView.setAdapter() or else important initialization will be skipped.

Summary

Inherited XML attributes

android:fragmentAllowEnterTransitionOverlap Sets whether the enter and exit transitions should overlap when transitioning forward. 
android:fragmentAllowReturnTransitionOverlap Sets whether the enter and exit transitions should overlap when transitioning because of popping the back stack. 
android:fragmentEnterTransition The Transition that will be used to move Views into the initial scene. 
android:fragmentExitTransition 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. 
android:fragmentReenterTransition The Transition that will be used to move Views in to the scene when returning due to popping a back stack. 
android:fragmentSharedElementEnterTransition The Transition that will be used for shared elements transferred into the content Scene. 
android:fragmentSharedElementReturnTransition The Transition that will be used for shared elements transferred back during a pop of the back stack. 

Inherited constants

int TRIM_MEMORY_BACKGROUND

Level for onTrimMemory(int): the process has gone on to the LRU list.

int TRIM_MEMORY_COMPLETE

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_MODERATE

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_RUNNING_CRITICAL

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_RUNNING_LOW

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_RUNNING_MODERATE

This constant was deprecated in API level 35. Apps are not notified of this level since API level 34

int TRIM_MEMORY_UI_HIDDEN

Level for onTrimMemory(int): the process had been showing a user interface, and is no longer doing so.

Public constructors

ListFragment()

Public methods

ListAdapter getListAdapter()

Get the ListAdapter associated with this fragment's ListView.

ListView getListView()

Get the fragment's list view widget.

long getSelectedItemId()

Get the cursor row ID of the currently selected list item.

int getSelectedItemPosition()

Get the position of the currently selected list item.

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

Provide default implementation to return a simple list view.

void onDestroyView()

Detach from list view.

void onListItemClick(ListView l, View v, int position, long id)

This method will be called when an item in the list is selected.

void onViewCreated(View view, Bundle savedInstanceState)

Attach to list view once the view hierarchy has been created.

void setEmptyText(CharSequence text)

The default content for a ListFragment has a TextView that can be shown when the list is empty.

void setListAdapter(ListAdapter adapter)

Provide the cursor for the list view.

void setListShown(boolean shown)

Control whether the list is being displayed.

void setListShownNoAnimation(boolean shown)

Like setListShown(boolean), but no animation is used when transitioning from the previous state.

void setSelection(int position)

Set the currently selected list item to the specified position with the adapter's data

Inherited 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 Activity getActivity()

Return the Activity this fragment is currently associated with.

boolean getAllowEnterTransitionOverlap()

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

boolean getAllowReturnTransitionOverlap()

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

final Bundle getArguments()

Return the arguments supplied to setArguments(Bundle), 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.

Transition getEnterTransition()

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

Transition 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.

final LayoutInflater getLayoutInflater()

Returns the cached LayoutInflater used to inflate Views of this Fragment.

LoaderManager getLoaderManager()

This method is deprecated. Use Fragment.getLoaderManager()

final Fragment getParentFragment()

Returns the parent Fragment containing this Fragment.

Transition 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()
Transition 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.

Transition getSharedElementEnterTransition()

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

Transition 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)

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

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 String.format(String, Object).

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(android.content.Context, java.lang.String, android.os.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 isStateSaved()

Returns true if this fragment is added and its state has already been saved by its host.

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(android.content.Intent, int).

void onAttach(Activity activity)

This method was deprecated in API level 23. Use onAttach(android.content.Context) instead.

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. If you override this method you must call through to the superclass implementation.

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.

Animator onCreateAnimator(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 Activity'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.

LayoutInflater onGetLayoutInflater(Bundle savedInstanceState)

Returns the LayoutInflater used to inflate Views of this Fragment.

void onHiddenChanged(boolean hidden)

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

void onInflate(AttributeSet attrs, Bundle savedInstanceState)

This method was deprecated in API level 15. Use onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle) instead.

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

This method was deprecated in API level 23. Use onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle) instead.

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. If you override this method you must call through to the superclass implementation.

void onMultiWindowModeChanged(boolean isInMultiWindowMode)

This method was deprecated in API level 26. Use onMultiWindowModeChanged(boolean, android.content.res.Configuration) instead.

void onMultiWindowModeChanged(boolean isInMultiWindowMode, Configuration newConfig)

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, Configuration newConfig)

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

void onPictureInPictureModeChanged(boolean isInPictureInPictureMode)

This method was deprecated in API level 26. Use onPictureInPictureModeChanged(boolean, android.content.res.Configuration) instead.

void onPrepareOptionsMenu(Menu menu)

Prepare the Screen'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 onTrimMemory(int level)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. If you override this method you must call through to the superclass implementation.

void onViewCreated(View view, Bundle savedInstanceState)

Called immediately after onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.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 postponeEnterTransition()

Postpone the entering Fragment transition until startPostponedEnterTransition() or FragmentManager.executePendingTransactions() has been called.

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 exit transition and enter transition overlap or not.

void setAllowReturnTransitionOverlap(boolean allow)

Sets whether 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(Transition 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(Transition 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(Transition 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(Transition 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(Transition transition)

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

void setSharedElementReturnTransition(Transition 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 before requesting a permission.

void startActivity(Intent intent)

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

void startActivity(Intent intent, Bundle options)

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

void startActivityForResult(Intent intent, int requestCode)

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

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

Call Activity.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 Activity.startIntentSenderForResult(IntentSender, int, Intent, int, int, int, Bundle) from the fragment's containing Activity.

void startPostponedEnterTransition()

Begin postponed transitions after postponeEnterTransition() was called.

String toString()

Returns a string representation of the object.

void unregisterForContextMenu(View view)

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

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

abstract void onTrimMemory(int level)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process.

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

Called when the context menu for this view is being built.

abstract void onConfigurationChanged(Configuration newConfig)

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

abstract void onLowMemory()

This method was deprecated in API level 35. Since API level 14 this is superseded by ComponentCallbacks2.onTrimMemory. Since API level 34 this is never called. If you're overriding ComponentCallbacks2#onTrimMemory and your minSdkVersion is greater than API 14, you can provide an empty implementation for this method.

Public constructors

ListFragment

Added in API level 11
public ListFragment ()

Public methods

getListAdapter

Added in API level 11
public ListAdapter getListAdapter ()

Get the ListAdapter associated with this fragment's ListView.

Returns
ListAdapter

getListView

Added in API level 11
public ListView getListView ()

Get the fragment's list view widget.

Returns
ListView

getSelectedItemId

Added in API level 11
public long getSelectedItemId ()

Get the cursor row ID of the currently selected list item.

Returns
long

getSelectedItemPosition

Added in API level 11
public int getSelectedItemPosition ()

Get the position of the currently selected list item.

Returns
int

onCreateView

Added in API level 11
public View onCreateView (LayoutInflater inflater, 
                ViewGroup container, 
                Bundle savedInstanceState)

Provide default implementation to return a simple list view. Subclasses can override to replace with their own layout. If doing so, the returned view hierarchy must have a ListView whose id is android.R.id.list and can optionally have a sibling view id android.R.id.empty that is to be shown when the list is empty.

If you are overriding this method with your own custom content, consider including the standard layout R.layout.list_content in your layout file, so that you continue to retain all of the standard behavior of ListFragment. In particular, this is currently the only way to have the built-in indeterminant progress state be shown.

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.

onDestroyView

Added in API level 11
public void onDestroyView ()

Detach from list view.

onListItemClick

Added in API level 11
public void onListItemClick (ListView l, 
                View v, 
                int position, 
                long id)

This method will be called when an item in the list is selected. Subclasses should override. Subclasses can call getListView().getItemAtPosition(position) if they need to access the data associated with the selected item.

Parameters
l ListView: The ListView where the click happened

v View: The view that was clicked within the ListView

position int: The position of the view in the list

id long: The row id of the item that was clicked

onViewCreated

Added in API level 13
Deprecated in API level 28
public void onViewCreated (View view, 
                Bundle savedInstanceState)

Attach to list view once the view hierarchy has been created.

Parameters
view View: The View returned by onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle).

savedInstanceState Bundle: If non-null, this fragment is being re-constructed from a previous saved state as given here.

setEmptyText

Added in API level 11
public void setEmptyText (CharSequence text)

The default content for a ListFragment has a TextView that can be shown when the list is empty. If you would like to have it shown, call this method to supply the text it should use.

Parameters
text CharSequence

setListAdapter

Added in API level 11
public void setListAdapter (ListAdapter adapter)

Provide the cursor for the list view.

Parameters
adapter ListAdapter

setListShown

Added in API level 11
public void setListShown (boolean shown)

Control whether the list is being displayed. You can make it not displayed if you are waiting for the initial data to show in it. During this time an indeterminant progress indicator will be shown instead.

Applications do not normally need to use this themselves. The default behavior of ListFragment is to start with the list not being shown, only showing it once an adapter is given with setListAdapter(android.widget.ListAdapter). If the list at that point had not been shown, when it does get shown it will be do without the user ever seeing the hidden state.

Parameters
shown boolean: If true, the list view is shown; if false, the progress indicator. The initial value is true.

setListShownNoAnimation

Added in API level 11
public void setListShownNoAnimation (boolean shown)

Like setListShown(boolean), but no animation is used when transitioning from the previous state.

Parameters
shown boolean

setSelection

Added in API level 11
public void setSelection (int position)

Set the currently selected list item to the specified position with the adapter's data