Android Lesson 15. Пишем свой адаптер списка в Android.

В одном из предыдущих уроков, посвященных программированию под ОС Android, мы познакомились с элементом ListView, представляющим собой простой список. Для заполнения списка музыкальных групп мы воспользовались готовым классом ArrayAdapter.Но теперь мы хотим изменить представление элементов списка и выводить не только их название, но и год основания групп, а также имена их основателей.

Основной макет – обычный список. Его XML-представление ниже.

Итак, первое, что нам нужно сделать – это подготовить ресурсы. Так как мы уже умеем работать с базами данных, то это будет несложно. Так как организация работы с БД не является темой данной статьи, то пробежимся по ней совсем коротко.

Создаем класс-наследник SQLiteOpenHelper, содержащий два основных метода – onCreate() и onUpdate(), которые будут вызваны при создании и обновлении БД соответственно. Код приведен ниже. В нашей БД мы будем хранить сведения о музыкальных коллективах, а именно: название группы, год основания и имя лидера группы.

Также создадим простой класс Group для удобства работы с данными.

Для организации работы с базой данных, а именно выборки и добавления новых данных создадим вспомогательный класс DBConnection. Напомним, что все это является темой предыдущей статьи и если у Вас осталось готовое приложение с того урока, то вы можете сразу перейти к реализации своего кастомного адаптера.

Теперь перейдем к написанию своего адаптера. Ну наконец-то! Первое, что необходимо сделать – определить, как должен выглядеть элемент списка и создать соответствующий файл XML. Это делается точно также, как и при создании любого другого макета. Предположим, мы хотим сделать нечто подобное:

adapter_ex1

Код файла groups_item.xml приведен ниже.

Теперь нам нужно наследоваться от класса BaseAdapter для реализации своего адаптера.

Наш адаптер переопределяет методы суперкласса. В методе getView() мы выполняем основную часть работы, а именно: инициализируем разметку, соответствующую элементу списка и устанавливаем нужные значения текстовым меткам для каждого конкретного элемента в списке. Также наш адаптер имеет конструктор, в который мы передаем список, содержащий все группы из БД.

Теперь осталось реализовать метод onCreate() нашей основной активности. Получаем доступ к БД, список групп и устанавливаем адаптер для нашего списка методом setAdapter(). Теперь уже наш адаптер!

adapter_ex2

 

комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *