You have a data set, you throw it at an Adapter, and you end up with views in your layout
group list data by categories. It has the capability of expanding and collapsing the groups when user touches header.
Adapter is the interface that takes a data set and returns views representing that data. The adapter is able to say how many items there are, return an item for a specific position, and return the view associated with a position, among other things. For a ListView, you will use the ListAdapter interface that extends Adapter to add a couple of list-specific methods. Similarly, you will use the SpinnerAdapter interface for use in a Spinner.