Most visited

Recently visited

Added in API level 1

CursorTreeAdapter

public abstract class CursorTreeAdapter
extends BaseExpandableListAdapter implements Filterable

java.lang.Object
   ↳ android.widget.BaseExpandableListAdapter
     ↳ android.widget.CursorTreeAdapter
Known Direct Subclasses
Known Indirect Subclasses


An adapter that exposes data from a series of Cursors to an ExpandableListView widget. The top-level Cursor (that is given in the constructor) exposes the groups, while subsequent Cursors returned from getChildrenCursor(Cursor) expose children within a particular group. The Cursors must include a column named "_id" or this class will not work.

Summary

Public constructors

CursorTreeAdapter(Cursor cursor, Context context)

Constructor.

CursorTreeAdapter(Cursor cursor, Context context, boolean autoRequery)

Constructor.

Public methods

void changeCursor(Cursor cursor)
String convertToString(Cursor cursor)
Cursor getChild(int groupPosition, int childPosition)
long getChildId(int groupPosition, int childPosition)
View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
int getChildrenCount(int groupPosition)
Cursor getCursor()
Filter getFilter()

Returns a filter that can be used to constrain data with a filtering pattern.

FilterQueryProvider getFilterQueryProvider()
Cursor getGroup(int groupPosition)
int getGroupCount()
long getGroupId(int groupPosition)
View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
boolean hasStableIds()
boolean isChildSelectable(int groupPosition, int childPosition)
void notifyDataSetChanged()
void notifyDataSetChanged(boolean releaseCursors)

Notifies a data set change, but with the option of not releasing any cached cursors.

void notifyDataSetInvalidated()
void onGroupCollapsed(int groupPosition)

Called when a group is collapsed.

Cursor runQueryOnBackgroundThread(CharSequence constraint)
void setChildrenCursor(int groupPosition, Cursor childrenCursor)

Sets the children Cursor for a particular group.

void setFilterQueryProvider(FilterQueryProvider filterQueryProvider)
void setGroupCursor(Cursor cursor)

Sets the group Cursor.

Protected methods

abstract void bindChildView(View view, Context context, Cursor cursor, boolean isLastChild)

Bind an existing view to the child data pointed to by cursor

abstract void bindGroupView(View view, Context context, Cursor cursor, boolean isExpanded)

Bind an existing view to the group data pointed to by cursor.

abstract Cursor getChildrenCursor(Cursor groupCursor)

Gets the Cursor for the children at the given group.

abstract View newChildView(Context context, Cursor cursor, boolean isLastChild, ViewGroup parent)

Makes a new child view to hold the data pointed to by cursor.

abstract View newGroupView(Context context, Cursor cursor, boolean isExpanded, ViewGroup parent)

Makes a new group view to hold the group data pointed to by cursor.

Inherited methods

From class android.widget.BaseExpandableListAdapter
From class java.lang.Object
From interface android.widget.ExpandableListAdapter
From interface android.widget.HeterogeneousExpandableList
From interface android.widget.Filterable

Public constructors

CursorTreeAdapter

Added in API level 1
CursorTreeAdapter (Cursor cursor, 
                Context context)

Constructor. The adapter will call requery() on the cursor whenever it changes so that the most recent data is always displayed.

Parameters
cursor Cursor: The cursor from which to get the data for the groups.
context Context

CursorTreeAdapter

Added in API level 1
CursorTreeAdapter (Cursor cursor, 
                Context context, 
                boolean autoRequery)

Constructor.

Parameters
cursor Cursor: The cursor from which to get the data for the groups.
context Context: The context
autoRequery boolean: If true the adapter will call requery() on the cursor whenever it changes so the most recent data is always displayed.

Public methods

changeCursor

Added in API level 1
void changeCursor (Cursor cursor)

Parameters
cursor Cursor

See also:

convertToString

Added in API level 1
String convertToString (Cursor cursor)

Parameters
cursor Cursor
Returns
String

See also:

getChild

Added in API level 1
Cursor getChild (int groupPosition, 
                int childPosition)

Parameters
groupPosition int
childPosition int
Returns
Cursor

getChildId

Added in API level 1
long getChildId (int groupPosition, 
                int childPosition)

Parameters
groupPosition int
childPosition int
Returns
long

getChildView

Added in API level 1
View getChildView (int groupPosition, 
                int childPosition, 
                boolean isLastChild, 
                View convertView, 
                ViewGroup parent)

Parameters
groupPosition int
childPosition int
isLastChild boolean
convertView View
parent ViewGroup
Returns
View

getChildrenCount

Added in API level 1
int getChildrenCount (int groupPosition)

Parameters
groupPosition int
Returns
int

getCursor

Added in API level 1
Cursor getCursor ()

Returns
Cursor

See also:

getFilter

Added in API level 1
Filter getFilter ()

Returns a filter that can be used to constrain data with a filtering pattern.

This method is usually implemented by Adapter classes.

Returns
Filter a filter used to constrain data

getFilterQueryProvider

Added in API level 1
FilterQueryProvider getFilterQueryProvider ()

Returns
FilterQueryProvider

See also:

getGroup

Added in API level 1
Cursor getGroup (int groupPosition)

Parameters
groupPosition int
Returns
Cursor

getGroupCount

Added in API level 1
int getGroupCount ()

Returns
int

getGroupId

Added in API level 1
long getGroupId (int groupPosition)

Parameters
groupPosition int
Returns
long

getGroupView

Added in API level 1
View getGroupView (int groupPosition, 
                boolean isExpanded, 
                View convertView, 
                ViewGroup parent)

Parameters
groupPosition int
isExpanded boolean
convertView View
parent ViewGroup
Returns
View

hasStableIds

Added in API level 1
boolean hasStableIds ()

Returns
boolean

isChildSelectable

Added in API level 1
boolean isChildSelectable (int groupPosition, 
                int childPosition)

Parameters
groupPosition int
childPosition int
Returns
boolean

notifyDataSetChanged

Added in API level 1
void notifyDataSetChanged ()

notifyDataSetChanged

Added in API level 1
void notifyDataSetChanged (boolean releaseCursors)

Notifies a data set change, but with the option of not releasing any cached cursors.

Parameters
releaseCursors boolean: Whether to release and deactivate any cached cursors.

notifyDataSetInvalidated

Added in API level 1
void notifyDataSetInvalidated ()

onGroupCollapsed

Added in API level 1
void onGroupCollapsed (int groupPosition)

Called when a group is collapsed.

Parameters
groupPosition int: The group being collapsed.

runQueryOnBackgroundThread

Added in API level 1
Cursor runQueryOnBackgroundThread (CharSequence constraint)

Parameters
constraint CharSequence
Returns
Cursor

See also:

setChildrenCursor

Added in API level 1
void setChildrenCursor (int groupPosition, 
                Cursor childrenCursor)

Sets the children Cursor for a particular group. If there is an existing cursor it will be closed.

This is useful when asynchronously querying to prevent blocking the UI.

Parameters
groupPosition int: The group whose children are being set via this Cursor.
childrenCursor Cursor: The Cursor that contains the children of the group.

setFilterQueryProvider

Added in API level 1
void setFilterQueryProvider (FilterQueryProvider filterQueryProvider)

Parameters
filterQueryProvider FilterQueryProvider

See also:

setGroupCursor

Added in API level 1
void setGroupCursor (Cursor cursor)

Sets the group Cursor.

Parameters
cursor Cursor: The Cursor to set for the group. If there is an existing cursor it will be closed.

Protected methods

bindChildView

Added in API level 1
void bindChildView (View view, 
                Context context, 
                Cursor cursor, 
                boolean isLastChild)

Bind an existing view to the child data pointed to by cursor

Parameters
view View: Existing view, returned earlier by newChildView
context Context: Interface to application's global information
cursor Cursor: The cursor from which to get the data. The cursor is already moved to the correct position.
isLastChild boolean: Whether the child is the last child within its group.

bindGroupView

Added in API level 1
void bindGroupView (View view, 
                Context context, 
                Cursor cursor, 
                boolean isExpanded)

Bind an existing view to the group data pointed to by cursor.

Parameters
view View: Existing view, returned earlier by newGroupView.
context Context: Interface to application's global information
cursor Cursor: The cursor from which to get the data. The cursor is already moved to the correct position.
isExpanded boolean: Whether the group is expanded.

getChildrenCursor

Added in API level 1
Cursor getChildrenCursor (Cursor groupCursor)

Gets the Cursor for the children at the given group. Subclasses must implement this method to return the children data for a particular group.

If you want to asynchronously query a provider to prevent blocking the UI, it is possible to return null and at a later time call setChildrenCursor(int, Cursor).

It is your responsibility to manage this Cursor through the Activity lifecycle. It is a good idea to use managedQuery(Uri, String[], String, String[], String) which will handle this for you. In some situations, the adapter will deactivate the Cursor on its own, but this will not always be the case, so please ensure the Cursor is properly managed.

Parameters
groupCursor Cursor: The cursor pointing to the group whose children cursor should be returned
Returns
Cursor The cursor for the children of a particular group, or null.

newChildView

Added in API level 1
View newChildView (Context context, 
                Cursor cursor, 
                boolean isLastChild, 
                ViewGroup parent)

Makes a new child view to hold the data pointed to by cursor.

Parameters
context Context: Interface to application's global information
cursor Cursor: The cursor from which to get the data. The cursor is already moved to the correct position.
isLastChild boolean: Whether the child is the last child within its group.
parent ViewGroup: The parent to which the new view is attached to
Returns
View the newly created view.

newGroupView

Added in API level 1
View newGroupView (Context context, 
                Cursor cursor, 
                boolean isExpanded, 
                ViewGroup parent)

Makes a new group view to hold the group data pointed to by cursor.

Parameters
context Context: Interface to application's global information
cursor Cursor: The group cursor from which to get the data. The cursor is already moved to the correct position.
isExpanded boolean: Whether the group is expanded.
parent ViewGroup: The parent to which the new view is attached to
Returns
View The newly created view.

Hooray!