2011-01-25 3 views
6

Я пытаюсь настроить макет GridView изображения, и это предполагает получение нового класса из класса BaseAdapter. Я использую учебник на сайте developer.android.com, но я до сих пор не совсем понимаю, что это значит. Может кто-нибудь объяснить мне, что такое BaseAdapter? Я не понимаю определения, предоставленного веб-сайтом разработчиков Android.Понимание базовых адаптеров и их использование

Благодаря

ответ

3

http://developer.android.com/resources/tutorials/views/hello-gridview.html

Элемент GridView является подклассом типа зрения известного как AdapterView. Как правило, они содержат несколько меньших видов, но полагаются на адаптер, чтобы дать им эти Представления. Класс BaseAdapter - это тот, который вы расширяете, чтобы переопределить методы, которые сообщают AdaptView (вашему GridView), что отображать. Наиболее важным методом переопределения является метод getView(), в котором вы возвращаете представление для отображения в определенной позиции в сетке.

Хотя эта настройка немного запутанна и сложна, разработчики Android выбрали это из-за всех оптимизаций, которые она разрешила. Большая оптимизация для AdapterViews достигается за счет повторного использования представлений вместо создания новых методов getView. Это аргумент convertView, который вы видите в методе getView. Если convertView == null, то методу необходимо создать новый объект View и вернуть его, дорогостоящую операцию. Если он не является нулевым, то адаптер может повторно использовать представление, просто изменяя изображение в этом примере учебника.

19

Адаптер используется для привязки данных к представлению. См AdapterView:

AdapterView является вид, чьи дети определяются с помощью адаптера.

Несколько представлений макет проистекают из AdapterView как GridView, ListView и Галерея.

Конечно, вы, как правило, не используете AdapterView и Adapter напрямую, а скорее используете или извлекаете из одного из своих подклассов. Подклассы адаптера могут добавлять дополнительные функции, которые изменяют способ привязки данных для просмотра.

BaseAdapter - это абстрактный базовый класс для интерфейса адаптера для упрощения реализации адаптеров. Вы можете реализовать свои собственные, но инфраструктура предоставляет некоторые довольно гибкие адаптеры. Некоторые популярные адаптеры:

ArrayAdapter,

  • связывает массив данных с точки зрения
  • переопределение getView() надуть, заселить и вернуть настраиваемое представление для данного индекса в массив. Способ getView() включает в себя возможность повторного использования видов через параметр convertView.

CursorAdapter,

  • связывает данные из курсора (например, курсор базы данных) на вид
  • абстрактный, так что вы не используете его напрямую, используйте подкласс или получить ваш собственный
  • реализовать абстрактный метод newView() раздуть, заполнить и вернуть желаемый вид для текущей позиции курсора и реализовать абстрактный метод bindView заполнить существующий вид, что в настоящее время повторно использовать ..

SimpleCursorAdapter,

  • конкретная реализация CursorAdapter
  • это может занять расположение строк и отображение курсора столбцов для разбивки макетов виджетов
  • поддерживает текст и изображения, но может настраиваться с использованием setViewText и setViewImage
  • может поддерживать другие типы и может настраивать привязки через крючок: клиенты реализуют интерфейс SimpleCursorAdapter.ViewBinder с использованием метода setViewValue() для раздувания, заполнения и возврата желаемого вида для данной строки (текущего состояния курсора) и данных «столбец». Этот метод может определять только «специальные» представления и привязки, но все же отложить до стандартного поведения SimpleCursorAdapter для «нормальных» привязок.
Смежные вопросы