0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Операционная система Android представляет широкую палитру элементов для работы со списками. Речь идет о таких виджетах, как<strong>ListView, GridView, Spinner</strong>. Эти элементы - наследники класса<strong>android.widget.AdapterView</strong>, которые способны выступать в качестве контейнеров для других элементов управления.</p>
1
<p>Операционная система Android представляет широкую палитру элементов для работы со списками. Речь идет о таких виджетах, как<strong>ListView, GridView, Spinner</strong>. Эти элементы - наследники класса<strong>android.widget.AdapterView</strong>, которые способны выступать в качестве контейнеров для других элементов управления.</p>
2
<p>В процессе работы со списками разработчик имеет дело с 3-мя компонентами: 1)<strong>визуальный элемент</strong>(виджет), представляющий список на экране и отображающий данные (ListView, GridView); 2)<strong>источник данных</strong>. Это может быть массив, объект ArrayList, БД и так далее. В источнике данных находятся непосредственно отображаемые данные; 3)<strong>адаптер</strong>- специальный компонент, связывающий источник данных с виджетом списка.</p>
2
<p>В процессе работы со списками разработчик имеет дело с 3-мя компонентами: 1)<strong>визуальный элемент</strong>(виджет), представляющий список на экране и отображающий данные (ListView, GridView); 2)<strong>источник данных</strong>. Это может быть массив, объект ArrayList, БД и так далее. В источнике данных находятся непосредственно отображаемые данные; 3)<strong>адаптер</strong>- специальный компонент, связывающий источник данных с виджетом списка.</p>
3
<p>Самым простым и распространенным элементов списка считают виджет<strong>ListView</strong>.</p>
3
<p>Самым простым и распространенным элементов списка считают виджет<strong>ListView</strong>.</p>
4
<p>Давайте посмотрим на связь ListView с источником данных посредством класса ArrayAdapter - одного из таких адаптеров.</p>
4
<p>Давайте посмотрим на связь ListView с источником данных посредством класса ArrayAdapter - одного из таких адаптеров.</p>
5
<p>По сути, класс<strong>ArrayAdapter</strong>- это простейший адаптер, связывающий массив данных с набором компонентов TextView, из которых, например, и может состоять ListView. Таким образом, в нашем случае источник данных - массив объектов. При этом ArrayAdapter вызывает метод toString() у каждого объекта (что необходимо для приведения к строковому виду), а полученную строку устанавливает в TextView.</p>
5
<p>По сути, класс<strong>ArrayAdapter</strong>- это простейший адаптер, связывающий массив данных с набором компонентов TextView, из которых, например, и может состоять ListView. Таким образом, в нашем случае источник данных - массив объектов. При этом ArrayAdapter вызывает метод toString() у каждого объекта (что необходимо для приведения к строковому виду), а полученную строку устанавливает в TextView.</p>
6
<p>Вот как может выглядеть разметка приложения на примере:</p>
6
<p>Вот как может выглядеть разметка приложения на примере:</p>
7
<p>Здесь тоже определен элемент ListView, который станет осуществлять вывод списка объектов. Давайте перейдем к коду activity и свяжем ListView посредством ArrayAdapter с некоторыми данными:</p>
7
<p>Здесь тоже определен элемент ListView, который станет осуществлять вывод списка объектов. Давайте перейдем к коду activity и свяжем ListView посредством ArrayAdapter с некоторыми данными:</p>
8
<p>Тут мы сначала получаем по id элемент ListView, а потом создаем адаптер для него. Кстати, для создания адаптера использовался конструктор ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, countries).</p>
8
<p>Тут мы сначала получаем по id элемент ListView, а потом создаем адаптер для него. Кстати, для создания адаптера использовался конструктор ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, countries).</p>
9
<p>Что здесь что: •<strong>this</strong>- это текущий объект activity; •<strong>android.R.layout.simple_list_item_1</strong>- это файл разметки списка, причем этот файл фреймворк представляет по умолчанию. Файл располагается в папке Android SDK по пути platforms/[android-номер_версии]/data/res/layout. Если разработчика не будет удовлетворять стандартная разметка списка, можно создать свою, а потом в программном коде поменять идентификатор на id нужной разметки; •<strong>countries</strong>- массив данных. Совсем необязательно указывать именно массив - это, к примеру, может быть и список ArrayList<T>.</p>
9
<p>Что здесь что: •<strong>this</strong>- это текущий объект activity; •<strong>android.R.layout.simple_list_item_1</strong>- это файл разметки списка, причем этот файл фреймворк представляет по умолчанию. Файл располагается в папке Android SDK по пути platforms/[android-номер_версии]/data/res/layout. Если разработчика не будет удовлетворять стандартная разметка списка, можно создать свою, а потом в программном коде поменять идентификатор на id нужной разметки; •<strong>countries</strong>- массив данных. Совсем необязательно указывать именно массив - это, к примеру, может быть и список ArrayList<T>.</p>
10
<p>В конце, используя метод setAdapter(), следует установить для ListView адаптер.</p>
10
<p>В конце, используя метод setAdapter(), следует установить для ListView адаптер.</p>
11
<p>Итоговый результат:</p>
11
<p>Итоговый результат:</p>
12
<p><em>По материалам https://metanit.com/java/android/.</em></p>
12
<p><em>По материалам https://metanit.com/java/android/.</em></p>
13
13