Как работает метод getView () ArrayAdapter? - PullRequest
37 голосов
/ 22 июня 2011

Я хочу сделать ArrayAdapter для отображения изображения и текста.Я не хочу примеров, если это возможно.Я бы хотел, чтобы кто-нибудь объяснил мне, как работает getView().

Спасибо.

Ответы [ 2 ]

24 голосов
/ 21 июня 2013

getView() является основной частью вашего адаптера.Возвращает View, который будет отображаться как ваш список / сетка / галлерея / любой вид, который использует элемент адаптера.Он срабатывает при прокрутке представления (например, списка).

Итак, первое, что вы должны сделать, это создать собственный адаптер.Вы можете продлить его с BaseAdapter.Затем вам нужно создать некоторые данные для отображения (или передать их адаптеру извне - это лучшее решение).

После этого переопределите метод getView() и обязательно верните туда свой пользовательский вид.В вашем случае это должны быть Layout с ImageView и TextView (и не забудьте заполнить их).

Подробнее можно узнать у:

10 голосов
/ 18 февраля 2014

in BaseAdapter у вас есть getView функция, которая вызывается для AdapterView, т.е. ListView.

вам нужно переопределить getCount метод BaseAdapter, чтобы вернуть общее количество просмотров в diplay.

А в getView вы получаете следующие вещи:

public View getView(int position, View convertView, ViewGroup parent) 
  1. позиция:

    getView будет вызываться для каждой позиции каждый раз, когда она отображается .

  2. convertView

    Поскольку getView вызывается много раз, раздувая новое представление, каждый раз дорого, поэтому представление списка предоставляет вам одно из ранее созданных представлений для повторного использования.

  3. родитель

    Ссылка на родительское представление, для которого это представление будет дочерним.

ArrayAdapter - это подкласс BaseAdapter, который принимает ArrayList (или массив) в конструкторе. И переопределяет getCount для вас.

Итак, все, что вам нужно реализовать, это getView

...