Какова роль адаптеров в Android? - PullRequest
116 голосов
/ 09 сентября 2010

Я хочу знать , когда , , где и , как адаптеры используются в контексте Android.

Информация из документации разработчика Android была для меня недостаточной, и я хотел бы получить более подробный анализ.

Ответы [ 11 ]

40 голосов
/ 09 сентября 2010

Адаптеры скважин в Android в основном являются мостом между компонентами пользовательского интерфейса и источником данных, которые заполняют данные в компонент пользовательского интерфейса

Например, списки (компонент пользовательского интерфейса) заполняются с помощью адаптера списка измассив источников данных.

27 голосов
/ 09 августа 2015

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

Adapter - это интерфейс, реализации которого предоставляют данные и управляют отображением этих данных.ListView собственные адаптеры, которые полностью управляют дисплеем ListView.Таким образом, адаптеры управляют содержимым, отображаемым в списке, а также способами его отображения.

Интерфейс Adapter включает в себя различные методы передачи данных в ListView.Вы можете создать свой собственный адаптер с нуля, реализовав BaseAdapter.

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

Позволяет определить адаптер:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • Первый параметр: Context
  • Второй параметр: расположение строки
  • Третий параметр: идентификатор TextView, в который записываются данные
  • Четвертый параметр: массив данных
22 голосов
/ 25 октября 2016

Я хотел бы поделиться своим пониманием.

Это интерфейс между источником данных и вашим макетом (наиболее вероятно, ListView).

Аналогия

Давайте возьмем пример мобильного зарядного устройства, точнее USB-кабеля. Провод можно рассматривать как адаптер, а источник данных и расположение можно понимать как разъем (точка подключения) и порт USB (точка зарядки) соответственно.

В случае мобильной зарядки источник силы может быть разным, например зарядка от банка питания, розетки или ноутбука. То же самое касается адаптеров, используемых в Android. Источник данных может быть изменен в зависимости от требований приложения.

Короче говоря, адаптер в Android переносит данные из источника (например, ArrayList<>) и доставляет его в макет (XML-файл).

7 голосов
/ 30 июля 2014

Адаптеры в Android - это мост между представлением адаптера (например, ListView) и базовыми данными для этого представления.Представьте, каким был бы мир без адаптеров!

Примеры

  • Представление, отображающее элементы в вертикально прокручивающемся списке.Элементы поступают из ListAdapter, связанного с этим представлением.

  • ListAdapter определяет макет для отдельных строк списка и предоставляет данные для ListView через setAdapter() метод ListView.

  • Android предоставляет несколько стандартных адаптеров;наиболее важными являются ArrayAdapter и CursorAdapter.

  • ArrayAdapter могут обрабатывать данные на основе массивов или списков.

  • SimpleCursorAdapter могут обрабатывать данныеданные, связанные с базой данных.
4 голосов
/ 07 января 2013

Адаптер действует как мост между AdapterView и базовыми данными для этого представления. Адаптер обеспечивает доступ к элементам данных и отвечает за создание представления для каждого элемента в наборе данных.

Адаптеры - это умный способ подключения View к какому-либо источнику данных. Как правило, ваше представление будет ListView, а данные будут представлены в виде Cursor или Array. Таким образом, адаптеры являются подклассами CursorAdapter или ArrayAdapter.

4 голосов
/ 09 сентября 2010

Адаптеры в основном используются для доставки контента. Один адаптер, который вы, вероятно, имеете в каждом приложении, - это CursorAdapter, который позволяет доставлять контент, заданный курсором из запроса к базе данных. ListView почти всегда имеет своего рода адаптер.

2 голосов
/ 13 января 2017

Что такое адаптеры?

Адаптеры - это связь между набором данных и AdapterView, который отображает данные.

AdapterView

AdapterViews - это ViewGroups, которые отображают дочерние представления, предоставленные ему адаптером.Примером AdapterView являются ListView.

Адаптеры также предоставляют дочерние представления, которые отображают данные в AdapterView.Адаптеры отвечают за предоставление данных и создание представлений, представляющих каждый элемент.

Адаптеры получают данные и передают их вместе с дочерним представлением родительскому элементу AdapterView, который отображает дочернее представление и данные

2 голосов
/ 16 июля 2014

Адаптер управляет моделью данных и адаптирует ее к отдельным строкам в представлении списка. Расширяет класс BaseAdapter.

Каждая строка в представлении списка состоит из макета, который может быть настолько сложным, насколько вы хотите. Типичная строка в виде списка имеет изображение слева и две строки текста в середине.

0 голосов
/ 28 мая 2018

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

0 голосов
/ 19 сентября 2017

Уже дан многократный ответ, но я хочу дать другой ответ.

Адаптер означает, что вы можете это Его поставщик мостов .

Адаптеры являются связующим звеном между набором данных и AdapterView, который отображает данные.

...