2012-04-15 3 views
14

При создании настраиваемого adapter для ListView в android я вижу, что мне нужно создать класс, который расширяет класс ArrayAdapter и реализует метод getView(..).Когда getView() в ArrayAdapter называется

Все это нормально, но я хочу знать последовательность методов вызова и выполнения. то есть в какой точке кода вызывается getView()?

+1

Обратитесь к [LINK] (http://www.ezzylearning.com/tutorial.aspx?tid=1763429&q=customizing-android-listview-items-with-custom-arrayadapter), в нем есть ясное и понятное объяснение CustomAdapter код образца –

ответ

7

От android docs - Объект Adapter выступает в качестве моста между AdapterView (например, ListView в вашем случае) и базовыми данными для этого представления. Адаптер обеспечивает доступ к элементам данных и также отвечает за создание представления для каждого элемента в наборе данных.

Таким образом, всякий раз, когда ListView должен отображать определенную строку данных, он запрашивает связанный адаптер, чтобы предоставить представление, соответствующее данным в этой позиции, с помощью метода getView(). Это может происходить всякий раз, когда представление необходимо обновлять на экране (например, во время создания/прокрутки и т. Д.).

Как разработчик приложения, вам не нужно беспокоиться о том, в какой момент вызывается getView(), пока вы предоставляете конкретную реализацию getView() в своем адаптере. Убедитесь, что метод эффективен (миниатюры и т. Д. Должны быть загружены в фоновый поток) для оптимальной производительности.

+0

Как вы можете смелости рассказать об этом, что ему не нужно беспокоиться о том, как он работает? –

0
getView(int position, View view, ViewGroup parent) 

вызывается для

List of Objects 

из н.у.к. элементов с использованием

getItem(int position) 

для длины нашего списка

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