Разница между ArrayAdapter и ListAdapter в Android? - программирование
Подтвердить что ты не робот

Разница между ArrayAdapter и ListAdapter в Android?

Я знаю, что ListAdapter - это интерфейс, а ArrayAdapter - это класс. Таким образом, мы можем создать экземпляр ArrayAdapter. Я встретил код

ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songNames);

Но я смог сделать то же самое с

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songsArray);

Итак, я хочу знать, в каких точках нам нужен ListAdapter?

Спасибо

4b9b3361

Ответ 1

Это не связано с Android. Но общий вопрос Java.

Когда вы используете ListAdapter как тип для своей переменной, вы действительно заинтересованы в интерфейсе. Вы не можете быть заинтересованы в вызове определенного метода ArrayAdapter<String>, недоступного в ListAdapter. Это связано с тем, что вы просто назначаете адаптер в качестве адаптера списка для представления.

Вы можете использовать точный тип ArrayAdapter<String>, если вам действительно нужно вызвать некоторые определенные методы.

Все зависит от вашего варианта использования.

Ответ 2

BaseAdapter Это очень общий адаптер, который позволяет вам делать все, что угодно. Его базовый класс для всего адаптера.

ArrayAdapter          Это более полная реализация, которая хорошо работает для данных в массивах или ArrayLists.           Аналогично, существует связанный CursorAdapter, который вы должны использовать, если ваши данные находятся в курсоре.           Оба из них расширяют BaseAdapter