В чем разница между ArrayAdapter, BaseAdapter и ListAdapter

Не могли бы вы рассказать мне разницу между ArrayAdapter , BaseAdapter и ListAdapter.


person Kanaiya Katarmal    schedule 24.07.2012    source источник


Ответы (2)


BaseAdapter, как следует из названия, является базовым классом для всех адаптеров.

Когда вы расширяете базовый класс адаптера, вам необходимо реализовать все методы, такие как getCount(), getId() и т. д.

ArrayAdapter — это класс, который может работать с массивом данных. Вам нужно переопределить только метод getview().

ListAdapter — это интерфейс, реализуемый конкретными классами адаптеров.

BaseAdapter — это абстрактный класс, тогда как ArrayAdapter и ListAdapter — это конкретные классы.

Классы ArrayAdapter и ListAdapter разработаны, поскольку в основном мы имеем дело с наборами данных массива и наборами данных списка.

person Ashwin N Bhanushali    schedule 24.07.2012
comment
Вы правы, говоря, что ArrayAdapter — это конкретный класс. Однако ListAdapter — это не класс, это интерфейс, реализованный BaseAdapter. Короче говоря, вы можете либо использовать готовый ArrayAdapter, либо написать собственный адаптер, расширяющий BaseAdapter. - person Spinner; 22.08.2012
comment
У меня есть вопрос, я хочу использовать базу данных в своем проекте, которая заполняет данные пользователей, и после заполнения все элементы будут отображаться в ListView. но я не знаю, какой из адаптеров мне подходит? ArrayAdapter или BaseAdapter? пожалуйста, помогите мне. спасибо - person Mina Dahesh; 13.03.2015
comment
Это должен быть CursorAdapter, см. developer.android.com/reference/android/widget/ - person Ashwin N Bhanushali; 16.03.2015

Адаптер списка

Это интерфейс, который расширил адаптер, который является мостом между ListView и данными, поддерживающими список.

Базовый адаптер

Общий базовый класс общей реализации для адаптера, который можно использовать как в ListView (путем реализации специализированного интерфейса ListAdapter}, так и в Spinner (путем реализации специализированного интерфейса SpinnerAdapter.

Адаптер массива

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

См. ниже ссылки

  1. ListAdapter

  2. BaseAdapter

  3. ArrayAdapter

person Nirali    schedule 24.07.2012
comment
Обратите внимание, что ListAdapter — это интерфейс, а два других — это классы, реализующие ListAdapter (один косвенно). - person Spinner; 22.08.2012
comment
Можете ли вы привести пример, когда я буду использовать адаптер базы и массива? - person user1708134; 31.03.2013