HTML Diff
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&lt;String&gt;(this,android.R.layout.simple_list_item_1, countries).</p>
8 <p>Тут мы сначала получаем по id элемент ListView, а потом создаем адаптер для него. Кстати, для создания адаптера использовался конструктор ArrayAdapter&lt;String&gt;(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&lt;T&gt;.</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&lt;T&gt;.</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