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 г.