SimpleExpandableListAdapter
open class SimpleExpandableListAdapter : BaseExpandableListAdapter
An easy adapter to map static data to group and child views defined in an XML file. You can separately specify the data backing the group as a List of Maps. Each entry in the ArrayList corresponds to one group in the expandable list. The Maps contain the data for each row. You also specify an XML file that defines the views used to display a group, and a mapping from keys in the Map to specific views. This process is similar for a child, except it is one-level deeper so the data backing is specified as a List>, where the first List corresponds to the group of the child, the second List corresponds to the position of the child within the group, and finally the Map holds the data for that particular child.
Summary
Public constructors |
SimpleExpandableListAdapter(context: Context!, groupData: MutableList<out MutableMap<String!, *>!>!, groupLayout: Int, groupFrom: Array<String!>!, groupTo: IntArray!, childData: MutableList<out MutableList<out MutableMap<String!, *>!>!>!, childLayout: Int, childFrom: Array<String!>!, childTo: IntArray!)
Constructor
|
SimpleExpandableListAdapter(context: Context!, groupData: MutableList<out MutableMap<String!, *>!>!, expandedGroupLayout: Int, collapsedGroupLayout: Int, groupFrom: Array<String!>!, groupTo: IntArray!, childData: MutableList<out MutableList<out MutableMap<String!, *>!>!>!, childLayout: Int, childFrom: Array<String!>!, childTo: IntArray!)
Constructor
|
SimpleExpandableListAdapter(context: Context!, groupData: MutableList<out MutableMap<String!, *>!>!, expandedGroupLayout: Int, collapsedGroupLayout: Int, groupFrom: Array<String!>!, groupTo: IntArray!, childData: MutableList<out MutableList<out MutableMap<String!, *>!>!>!, childLayout: Int, lastChildLayout: Int, childFrom: Array<String!>!, childTo: IntArray!)
Constructor
|
Inherited functions |
From class BaseExpandableListAdapter
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 |
notifyDataSetChanged()
|
Unit |
notifyDataSetInvalidated()
|
Unit |
onGroupCollapsed(groupPosition: Int)
|
Unit |
onGroupExpanded(groupPosition: Int)
|
Unit |
registerDataSetObserver(observer: DataSetObserver!)
|
Unit |
unregisterDataSetObserver(observer: DataSetObserver!)
|
|
From class ExpandableListAdapter
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
SimpleExpandableListAdapter
SimpleExpandableListAdapter(
context: Context!,
groupData: MutableList<out MutableMap<String!, *>!>!,
groupLayout: Int,
groupFrom: Array<String!>!,
groupTo: IntArray!,
childData: MutableList<out MutableList<out MutableMap<String!, *>!>!>!,
childLayout: Int,
childFrom: Array<String!>!,
childTo: IntArray!)
Constructor
Parameters |
context |
Context!: The context where the ExpandableListView associated with this SimpleExpandableListAdapter is running |
groupData |
MutableList<out MutableMap<String!, *>!>!: A List of Maps. Each entry in the List corresponds to one group in the list. The Maps contain the data for each group, and should include all the entries specified in "groupFrom" |
groupFrom |
Array<String!>!: A list of keys that will be fetched from the Map associated with each group. |
groupTo |
IntArray!: The group views that should display column in the "groupFrom" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the groupFrom parameter. |
groupLayout |
Int: resource identifier of a view layout that defines the views for a group. The layout file should include at least those named views defined in "groupTo" |
childData |
MutableList<out MutableList<out MutableMap<String!, *>!>!>!: A List of List of Maps. Each entry in the outer List corresponds to a group (index by group position), each entry in the inner List corresponds to a child within the group (index by child position), and the Map corresponds to the data for a child (index by values in the childFrom array). The Map contains the data for each child, and should include all the entries specified in "childFrom" |
childFrom |
Array<String!>!: A list of keys that will be fetched from the Map associated with each child. |
childTo |
IntArray!: The child views that should display column in the "childFrom" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the childFrom parameter. |
childLayout |
Int: resource identifier of a view layout that defines the views for a child. The layout file should include at least those named views defined in "childTo" |
SimpleExpandableListAdapter
SimpleExpandableListAdapter(
context: Context!,
groupData: MutableList<out MutableMap<String!, *>!>!,
expandedGroupLayout: Int,
collapsedGroupLayout: Int,
groupFrom: Array<String!>!,
groupTo: IntArray!,
childData: MutableList<out MutableList<out MutableMap<String!, *>!>!>!,
childLayout: Int,
childFrom: Array<String!>!,
childTo: IntArray!)
Constructor
Parameters |
context |
Context!: The context where the ExpandableListView associated with this SimpleExpandableListAdapter is running |
groupData |
MutableList<out MutableMap<String!, *>!>!: A List of Maps. Each entry in the List corresponds to one group in the list. The Maps contain the data for each group, and should include all the entries specified in "groupFrom" |
groupFrom |
Array<String!>!: A list of keys that will be fetched from the Map associated with each group. |
groupTo |
IntArray!: The group views that should display column in the "groupFrom" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the groupFrom parameter. |
expandedGroupLayout |
Int: resource identifier of a view layout that defines the views for an expanded group. The layout file should include at least those named views defined in "groupTo" |
collapsedGroupLayout |
Int: resource identifier of a view layout that defines the views for a collapsed group. The layout file should include at least those named views defined in "groupTo" |
childData |
MutableList<out MutableList<out MutableMap<String!, *>!>!>!: A List of List of Maps. Each entry in the outer List corresponds to a group (index by group position), each entry in the inner List corresponds to a child within the group (index by child position), and the Map corresponds to the data for a child (index by values in the childFrom array). The Map contains the data for each child, and should include all the entries specified in "childFrom" |
childFrom |
Array<String!>!: A list of keys that will be fetched from the Map associated with each child. |
childTo |
IntArray!: The child views that should display column in the "childFrom" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the childFrom parameter. |
childLayout |
Int: resource identifier of a view layout that defines the views for a child. The layout file should include at least those named views defined in "childTo" |
SimpleExpandableListAdapter
SimpleExpandableListAdapter(
context: Context!,
groupData: MutableList<out MutableMap<String!, *>!>!,
expandedGroupLayout: Int,
collapsedGroupLayout: Int,
groupFrom: Array<String!>!,
groupTo: IntArray!,
childData: MutableList<out MutableList<out MutableMap<String!, *>!>!>!,
childLayout: Int,
lastChildLayout: Int,
childFrom: Array<String!>!,
childTo: IntArray!)
Constructor
Parameters |
context |
Context!: The context where the ExpandableListView associated with this SimpleExpandableListAdapter is running |
groupData |
MutableList<out MutableMap<String!, *>!>!: A List of Maps. Each entry in the List corresponds to one group in the list. The Maps contain the data for each group, and should include all the entries specified in "groupFrom" |
groupFrom |
Array<String!>!: A list of keys that will be fetched from the Map associated with each group. |
groupTo |
IntArray!: The group views that should display column in the "groupFrom" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the groupFrom parameter. |
expandedGroupLayout |
Int: resource identifier of a view layout that defines the views for an expanded group. The layout file should include at least those named views defined in "groupTo" |
collapsedGroupLayout |
Int: resource identifier of a view layout that defines the views for a collapsed group. The layout file should include at least those named views defined in "groupTo" |
childData |
MutableList<out MutableList<out MutableMap<String!, *>!>!>!: A List of List of Maps. Each entry in the outer List corresponds to a group (index by group position), each entry in the inner List corresponds to a child within the group (index by child position), and the Map corresponds to the data for a child (index by values in the childFrom array). The Map contains the data for each child, and should include all the entries specified in "childFrom" |
childFrom |
Array<String!>!: A list of keys that will be fetched from the Map associated with each child. |
childTo |
IntArray!: The child views that should display column in the "childFrom" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the childFrom parameter. |
childLayout |
Int: resource identifier of a view layout that defines the views for a child (unless it is the last child within a group, in which case the lastChildLayout is used). The layout file should include at least those named views defined in "childTo" |
lastChildLayout |
Int: resource identifier of a view layout that defines the views for the last child within each group. The layout file should include at least those named views defined in "childTo" |
Public methods
getChild
open fun getChild(
groupPosition: Int,
childPosition: Int
): Any!
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 |
Any! |
the data of the child |
getChildId
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
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
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 |
getGroup
open fun getGroup(groupPosition: Int): Any!
Parameters |
groupPosition |
Int: the position of the group |
Return |
Any! |
the data child for the specified group |
getGroupCount
open fun getGroupCount(): Int
Return |
Int |
the number of groups |
getGroupId
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
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
open fun hasStableIds(): Boolean
Return |
Boolean |
whether or not the same ID always refers to the same object |
isChildSelectable
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. |
newChildView
open fun newChildView(
isLastChild: Boolean,
parent: ViewGroup!
): View!
Instantiates a new View for a child.
Parameters |
isLastChild |
Boolean: Whether the child is the last child within its group. |
parent |
ViewGroup!: The eventual parent of this new View. |
Return |
View! |
A new child View |
newGroupView
open fun newGroupView(
isExpanded: Boolean,
parent: ViewGroup!
): View!
Instantiates a new View for a group.
Parameters |
isExpanded |
Boolean: Whether the group is currently expanded. |
parent |
ViewGroup!: The eventual parent of this new View. |
Return |
View! |
A new group View |