При работе со списками используется один из 3 компонентов:
1. Сами элементы списков (ListView, GridView), отображающие данные
2. Источники данных - массивы, объекты ArrayList, БД и т.д., в которых находятся отображаемые данные.
3. Адаптеры - специальные компоненты, которые связывают источник данных с элементом списка.
Рассмотрим связь элемента ListView с источником данных с помощью одного из таких адаптеров - класса ArrayAdapter. Он представляет собой простейший адаптер, который связывает массив данных с набором элементов TextView, из которых, к примеру, может состоять ListView. То есть в данном случае источником данных выступает массив объектов. ArrayAdapter вызывает у каждого объекта метод toString() для приведения к строковому виду и полученную строку устанавливает в элемент TextView.
ListView list = (ListView)findViewById(R.id.list)
ArrayAdapter<String> adapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, arr);
list.setAdapter(adapter);
Для создания адаптера использовался следующий конструктор ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list), где
- this - текущий объект activity
- android.R.layout.simple_list_item_1 - файл разметки списка, который фреймворк представляет по умолчанию. Он находится в папке Android SDK platforms/[android-номер_версии]/data/res/layout.
- list - массив данных. Здесь необязательно указывать именно массив, это может быть список ArrayList<T>. В конце неоходимо установить для ListView адаптер с помощью метода setAdapter().