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

Итак, мы начнем с создания простого списка и перейдем к использованию CustomAdapter, который предоставляет настраиваемый способ представления нашего собственного XML.

Давайте начнем:

Чтобы показать вертикальную строку прокручиваемого элемента в нашем приложении.

Сначала нам нужен ListView

Затем ListView заполняется адаптером

Самый простой используемый адаптер - это ArrayAdapter, который преобразует список массивов (ArrayList) в представления в ListView.

ArrayAdapter действует как посредник между источником данных (ArrayList, Cursor) и AdapterView (ListView, GridView, Spinner)

Использование Basic ArrayAdapter

Чтобы использовать базовый ArrayAdapter, нам просто нужно инициализировать адаптер массива и присоединить их к ListView.

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

ArrayAdapter Использует три аргумента:

1-й аргумент: принимает контекст или экземпляр действия

2-й аргумент: требуется макет xml файла

Третий аргумент: это массив данных

Далее нам просто нужно подключить адаптер к списку

ListView listView = (ListView) findViewById(R.id.lvItems);
listView.setAdapter(itemsAdapter);

Использование специального адаптера

Когда мы хотим использовать собственный настраиваемый XML-макет для каждого элемента в списке, мы используем настраиваемый адаптер. Для этого нам нужно создать собственный настраиваемый адаптер ArrayAdapter.
Для создания настраиваемого адаптера давайте подумаем, что мы храним в список. Итак, я собираюсь создать список моих друзей с их фотографиями и номерами телефона.
Во-первых, давайте создадим класс с именем «Друг», который будет содержать имя, номер телефона и расположение их изображений.
Теперь мы определяем XML-макет ListView

Теперь мы просто конвертируем объект java для просмотра. Здесь нам нужно расширить ArrayAdapter.

Для повышения производительности используется ViewHolder, чтобы сделать систему плавной. Поскольку каждый раз, когда элемент в списке загружается, он должен выполнять задачу TextView. Метод getView: вызывается каждый раз для определения размера данных. LayoutInflater: раздуть (добавить) файл представления / xml для строки ListView. Держатель: содержат надутые / добавленные эластичные элементы xml. Теперь давайте подключим адаптер к списку

// Construct the data source
ArrayList arrayOffriends = new ArrayList();
// Create the adapter to convert the array to views
CustomAdapter adapter = new CustomAdapter(this, arrayOffriends);
// Attach the adapter to a ListView
ListView listView = (ListView) findViewById(R.id.lvItems);
listView.setAdapter(adapter);

Заполнение данных в ListView

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

// Добавляем элемент в адаптер

Friend rohit = new Friend(“github.com/rohitsthaa”, “rohit”,”9845422250");
Friend hilson = new Friend(“hilson”, “hilson”,”98011000");
Friend aatish = new Friend(“aatish”, “aatish”,”980000125");
adapter.add(rohit);
adapter.add(hilson);
adapter.add(aatish);

// Или даже добавить целую новую коллекцию

// Получение некоторых данных, данные теперь вернулись

// Если данные были JSON, конвертируем в ArrayList объектов User.

JSONArray jsonArray = …;
ArrayList<Friend> newfriend = User.fromJson(jsonArray)
adapter.addAll(newfriend);

также можно очистить в любое время

Вы можете найти проект по адресу: https://github.com/rohitsthaa/CustomListView

Первоначально опубликовано на сайте shrestharohit.com.np 26 октября 2015 г.