Added in API level 1

CursorTreeAdapter


abstract class CursorTreeAdapter : BaseExpandableListAdapter, Filterable
ResourceCursorTreeAdapter

A fairly simple ExpandableListAdapter that creates views defined in an XML file.

SimpleCursorTreeAdapter

An easy adapter to map columns from a cursor to TextViews or ImageViews defined in an XML file.

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!, autoRequery: Boolean)

Constructor.

Public methods
open Unit
changeCursor(cursor: Cursor!)

open String!

open Cursor!
getChild(groupPosition: Int, childPosition: Int)

open Long
getChildId(groupPosition: Int, childPosition: Int)

open View!
getChildView(groupPosition: Int, childPosition: Int, isLastChild: Boolean, convertView: View!, parent: ViewGroup!)

open Int
getChildrenCount(groupPosition: Int)

open Cursor!

open Filter!

open FilterQueryProvider!

open Cursor!
getGroup(groupPosition: Int)

open Int

open Long
getGroupId(groupPosition: Int)

open View!
getGroupView(groupPosition: Int, isExpanded: Boolean, convertView: View!, parent: ViewGroup!)

open Boolean

open Boolean
isChildSelectable(groupPosition: Int, childPosition: Int)

open Unit

open Unit
notifyDataSetChanged(releaseCursors: Boolean)

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

open Unit

open Unit
onGroupCollapsed(groupPosition: Int)

open Cursor!

open Unit
setChildrenCursor(groupPosition: Int, childrenCursor: Cursor!)

Sets the children Cursor for a particular group.

open Unit

open Unit

Sets the group Cursor.

Protected methods
abstract Unit
bindChildView(view: View!, context: Context!, cursor: Cursor!, isLastChild: Boolean)

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

abstract Unit
bindGroupView(view: View!, context: Context!, cursor: Cursor!, isExpanded: Boolean)

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

abstract Cursor!
getChildrenCursor(groupCursor: Cursor!)

Gets the Cursor for the children at the given group.

abstract View!
newChildView(context: Context!, cursor: Cursor!, isLastChild: Boolean, parent: ViewGroup!)

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

abstract View!
newGroupView(context: Context!, cursor: Cursor!, isExpanded: Boolean, parent: ViewGroup!)

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

Inherited functions
Boolean areAllItemsEnabled()

Int getChildType(groupPosition: Int, childPosition: Int)

Get the type of child View that will be created by android.widget.ExpandableListAdapter#getChildView(int, int, boolean, View, ViewGroup) for the specified child item.

Int getChildTypeCount()

Returns the number of types of child Views that will be created by android.widget.ExpandableListAdapter#getChildView(int, int, boolean, View, ViewGroup) . Each type represents a set of views that can be converted in android.widget.ExpandableListAdapter#getChildView(int, int, boolean, View, ViewGroup) , for any group. If the adapter always returns the same type of View for all child items, this method should return 1.

This method will only be called when the adapter is set on the AdapterView.

Long getCombinedChildId(groupId: Long, childId: Long)

Override this method if you foresee a clash in IDs based on this scheme:

Base implementation returns a long:

  • bit 0: Whether this ID points to a child (unset) or group (set), so for this method this bit will be 1.
  • bit 1-31: Lower 31 bits of the groupId
  • bit 32-63: Lower 32 bits of the childId.

    Gets an ID for a child that is unique across any item (either group or child) that is in this list. Expandable lists require each item (group or child) to have a unique ID among all children and groups in the list. This method is responsible for returning that unique ID given a child's ID and its group's ID. Furthermore, if hasStableIds() is true, the returned ID must be stable as well.

  • Long getCombinedGroupId(groupId: Long)

    Override this method if you foresee a clash in IDs based on this scheme:

    Base implementation returns a long:

  • bit 0: Whether this ID points to a child (unset) or group (set), so for this method this bit will be 0.
  • bit 1-31: Lower 31 bits of the groupId
  • bit 32-63: Lower 32 bits of the childId.

    Gets an ID for a group that is unique across any item (either group or child) that is in this list. Expandable lists require each item (group or child) to have a unique ID among all children and groups in the list. This method is responsible for returning that unique ID given a group's ID. Furthermore, if hasStableIds() is true, the returned ID must be stable as well.

  • Int getGroupType(groupPosition: Int)

    Get the type of group View that will be created by android.widget.ExpandableListAdapter#getGroupView(int, boolean, View, ViewGroup) . for the specified group item.

    Int getGroupTypeCount()

    Returns the number of types of group Views that will be created by android.widget.ExpandableListAdapter#getGroupView(int, boolean, View, ViewGroup) . Each type represents a set of views that can be converted in android.widget.ExpandableListAdapter#getGroupView(int, boolean, View, ViewGroup) . If the adapter always returns the same type of View for all group items, this method should return 1.

    This method will only be called when the adapter is set on the AdapterView.

    Boolean isEmpty()

    Unit onGroupExpanded(groupPosition: Int)

    Unit registerDataSetObserver(observer: DataSetObserver!)

    Unit unregisterDataSetObserver(observer: DataSetObserver!)

    Any! getChild(groupPosition: Int, childPosition: Int)

    Gets the data associated with the given child within the given group.

    Long getChildId(groupPosition: Int, childPosition: Int)

    Gets the ID for the given child within the given group. This ID must be unique across all children within the group. The combined ID (see getCombinedChildId(long,long)) must be unique across ALL items (groups and all children).

    View! getChildView(groupPosition: Int, childPosition: Int, isLastChild: Boolean, convertView: View!, parent: ViewGroup!)

    Gets a View that displays the data for the given child within the given group.

    Int getChildrenCount(groupPosition: Int)

    Gets the number of children in a specified group.

    Any! getGroup(groupPosition: Int)

    Gets the data associated with the given group.

    Int getGroupCount()

    Gets the number of groups.

    Long getGroupId(groupPosition: Int)

    Gets the ID for the group at the given position. This group ID must be unique across groups. The combined ID (see getCombinedGroupId(long)) must be unique across ALL items (groups and all children).

    View! getGroupView(groupPosition: Int, isExpanded: Boolean, convertView: View!, parent: ViewGroup!)

    Gets a View that displays the given group. This View is only for the group--the Views for the group's children will be fetched using getChildView(int,int,boolean,android.view.View,android.view.ViewGroup).

    Boolean hasStableIds()

    Indicates whether the child and group IDs are stable across changes to the underlying data.

    Boolean isChildSelectable(groupPosition: Int, childPosition: Int)

    Whether the child at the specified position is selectable.

    Public constructors

    CursorTreeAdapter

    Added in API level 1
    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.

    CursorTreeAdapter

    Added in API level 1
    CursorTreeAdapter(
        cursor: Cursor!,
        context: Context!,
        autoRequery: Boolean)

    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

    Added in API level 1
    open fun changeCursor(cursor: Cursor!): Unit

    convertToString

    Added in API level 1
    open fun convertToString(cursor: Cursor!): String!

    getChild

    Added in API level 1
    open fun getChild(
        groupPosition: Int,
        childPosition: Int
    ): Cursor!
    Parameters
    groupPosition Int: the position of the group that the child resides in
    childPosition Int: the position of the child with respect to other children in the group
    Return
    Cursor! the data of the child

    getChildId

    Added in API level 1
    open fun getChildId(
        groupPosition: Int,
        childPosition: Int
    ): Long
    Parameters
    groupPosition Int: the position of the group that contains the child
    childPosition Int: the position of the child within the group for which the ID is wanted
    Return
    Long the ID associated with the child

    getChildView

    Added in API level 1
    open fun getChildView(
        groupPosition: Int,
        childPosition: Int,
        isLastChild: Boolean,
        convertView: View!,
        parent: ViewGroup!
    ): View!
    Parameters
    groupPosition Int: the position of the group that contains the child
    childPosition Int: the position of the child (for which the View is returned) within the group
    isLastChild Boolean: Whether the child is the last child within the group
    convertView View!: the old view to reuse, if possible. You should check that this view is non-null and of an appropriate type before using. If it is not possible to convert this view to display the correct data, this method can create a new view. It is not guaranteed that the convertView will have been previously created by getChildView(int,int,boolean,android.view.View,android.view.ViewGroup).
    parent ViewGroup!: the parent that this view will eventually be attached to
    Return
    View! the View corresponding to the child at the specified position

    getChildrenCount

    Added in API level 1
    open fun getChildrenCount(groupPosition: Int): Int
    Parameters
    groupPosition Int: the position of the group for which the children count should be returned
    Return
    Int the children count in the specified group

    getCursor

    Added in API level 1
    open fun getCursor(): Cursor!

    getFilter

    Added in API level 1
    open fun getFilter(): Filter!
    Return
    Filter! a filter used to constrain data

    getFilterQueryProvider

    Added in API level 1
    open fun getFilterQueryProvider(): FilterQueryProvider!

    getGroup

    Added in API level 1
    open fun getGroup(groupPosition: Int): Cursor!
    Parameters
    groupPosition Int: the position of the group
    Return
    Cursor! the data child for the specified group

    getGroupCount

    Added in API level 1
    open fun getGroupCount(): Int
    Return
    Int the number of groups

    getGroupId

    Added in API level 1
    open fun getGroupId(groupPosition: Int): Long
    Parameters
    groupPosition Int: the position of the group for which the ID is wanted
    Return
    Long the ID associated with the group

    getGroupView

    Added in API level 1
    open fun getGroupView(
        groupPosition: Int,
        isExpanded: Boolean,
        convertView: View!,
        parent: ViewGroup!
    ): View!
    Parameters
    groupPosition Int: the position of the group for which the View is returned
    isExpanded Boolean: whether the group is expanded or collapsed
    convertView View!: the old view to reuse, if possible. You should check that this view is non-null and of an appropriate type before using. If it is not possible to convert this view to display the correct data, this method can create a new view. It is not guaranteed that the convertView will have been previously created by getGroupView(int,boolean,android.view.View,android.view.ViewGroup).
    parent ViewGroup!: the parent that this view will eventually be attached to
    Return
    View! the View corresponding to the group at the specified position

    hasStableIds

    Added in API level 1
    open fun hasStableIds(): Boolean
    Return
    Boolean whether or not the same ID always refers to the same object

    isChildSelectable

    Added in API level 1
    open fun isChildSelectable(
        groupPosition: Int,
        childPosition: Int
    ): Boolean
    Parameters
    groupPosition Int: the position of the group that contains the child
    childPosition Int: the position of the child within the group
    Return
    Boolean whether the child is selectable.

    notifyDataSetChanged

    Added in API level 1
    open fun notifyDataSetChanged(): Unit

    notifyDataSetChanged

    Added in API level 1
    open fun notifyDataSetChanged(releaseCursors: Boolean): Unit

    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
    open fun notifyDataSetInvalidated(): Unit

    onGroupCollapsed

    Added in API level 1
    open fun onGroupCollapsed(groupPosition: Int): Unit
    Parameters
    groupPosition Int: The group being collapsed.

    runQueryOnBackgroundThread

    Added in API level 1
    open fun runQueryOnBackgroundThread(constraint: CharSequence!): Cursor!

    setChildrenCursor

    Added in API level 1
    open fun setChildrenCursor(
        groupPosition: Int,
        childrenCursor: Cursor!
    ): Unit

    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
    open fun setFilterQueryProvider(filterQueryProvider: FilterQueryProvider!): Unit

    setGroupCursor

    Added in API level 1
    open fun setGroupCursor(cursor: Cursor!): Unit

    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
    protected abstract fun bindChildView(
        view: View!,
        context: Context!,
        cursor: Cursor!,
        isLastChild: Boolean
    ): Unit

    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
    protected abstract fun bindGroupView(
        view: View!,
        context: Context!,
        cursor: Cursor!,
        isExpanded: Boolean
    ): Unit

    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
    protected abstract fun getChildrenCursor(groupCursor: Cursor!): Cursor!

    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
    Return
    Cursor! The cursor for the children of a particular group, or null.

    newChildView

    Added in API level 1
    protected abstract fun newChildView(
        context: Context!,
        cursor: Cursor!,
        isLastChild: Boolean,
        parent: ViewGroup!
    ): View!

    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
    Return
    View! the newly created view.

    newGroupView

    Added in API level 1
    protected abstract fun newGroupView(
        context: Context!,
        cursor: Cursor!,
        isExpanded: Boolean,
        parent: ViewGroup!
    ): View!

    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
    Return
    View! The newly created view.