CursorTreeAdapter
public
abstract
class
CursorTreeAdapter
extends BaseExpandableListAdapter
implements
Filterable
| java.lang.Object | ||
| ↳ | android.widget.BaseExpandableListAdapter | |
| ↳ | android.widget.CursorTreeAdapter | |
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(android.database.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 | |
|---|---|
Public constructors
CursorTreeAdapter
public CursorTreeAdapter (Cursor cursor, Context context)
Constructor. The adapter will call Cursor.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
public 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 Cursor.requery()
on the cursor whenever it changes so the most recent data is
always displayed. |
Public methods
changeCursor
public void changeCursor (Cursor cursor)
| Parameters | |
|---|---|
cursor |
Cursor |
See also:
convertToString
public String convertToString (Cursor cursor)
| Parameters | |
|---|---|
cursor |
Cursor |
| Returns | |
|---|---|
String |
|
See also:
getChild
public Cursor getChild (int groupPosition, int childPosition)
| Parameters | |
|---|---|
groupPosition |
int |
childPosition |
int |
| Returns | |
|---|---|
Cursor |
|
getChildId
public long getChildId (int groupPosition,
int childPosition)| Parameters | |
|---|---|
groupPosition |
int |
childPosition |
int |
| Returns | |
|---|---|
long |
|
getChildView
public 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
public int getChildrenCount (int groupPosition)
| Parameters | |
|---|---|
groupPosition |
int |
| Returns | |
|---|---|
int |
|
getFilter
public 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
public FilterQueryProvider getFilterQueryProvider ()
| Returns | |
|---|---|
FilterQueryProvider |
|
See also:
getGroup
public Cursor getGroup (int groupPosition)
| Parameters | |
|---|---|
groupPosition |
int |
| Returns | |
|---|---|
Cursor |
|
getGroupId
public long getGroupId (int groupPosition)
| Parameters | |
|---|---|
groupPosition |
int |
| Returns | |
|---|---|
long |
|
getGroupView
public View getGroupView (int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
| Parameters | |
|---|---|
groupPosition |
int |
isExpanded |
boolean |
convertView |
View |
parent |
ViewGroup |
| Returns | |
|---|---|
View |
|
isChildSelectable
public boolean isChildSelectable (int groupPosition,
int childPosition)| Parameters | |
|---|---|
groupPosition |
int |
childPosition |
int |
| Returns | |
|---|---|
boolean |
|
notifyDataSetChanged
public 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. |
onGroupCollapsed
public void onGroupCollapsed (int groupPosition)
Called when a group is collapsed.
| Parameters | |
|---|---|
groupPosition |
int: The group being collapsed. |
runQueryOnBackgroundThread
public Cursor runQueryOnBackgroundThread (CharSequence constraint)
| Parameters | |
|---|---|
constraint |
CharSequence |
| Returns | |
|---|---|
Cursor |
|
setChildrenCursor
public 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
public void setFilterQueryProvider (FilterQueryProvider filterQueryProvider)
| Parameters | |
|---|---|
filterQueryProvider |
FilterQueryProvider |
setGroupCursor
public 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
protected abstract 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
protected abstract 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
protected abstract 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, android.database.Cursor).
It is your responsibility to manage this Cursor through the Activity
lifecycle. It is a good idea to use Activity.managedQuery 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
protected abstract 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
protected 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.
| 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. |