Группировка флажков в ListView для Xamarin.Android

17.05.2021

Иллюстрация

Работа со списками в Xamarin.Android достаточно подробно представлена ​​в различных источниках. В частности, в этой книге был рассмотрен пример группировки результатов показателей жизнедеятельности пациента (давление и пульс) по датам измерений с использованием нативного компонента ListView. Группировать данные в целом несложно. Но если вы добавите возможность отмечать элементы списка внутри подгруппы, то решение становится не тривиальным, поскольку ListView не предоставляет эту функцию по умолчанию. Рассмотрим один из вариантов реализации такого интерфейса.

Пусть у нас имеется список стран, для каждой из которых задан список значимых городов. Представим эти города, сгруппированными по каждому из государств, с возможностью отмечать их произвольным образом и производить простую обработку выбранных подстрок, например, отправку численности отмеченных городов путем нажатия кнопки внутри группы. Для этого нам нужно в созданном проекте на основе пустого шаблона выполнить следующее:

  • Определить ListView в стартовой активности;
  • Определить разметку для отображения одного элемента в списке;
  • Определить модель данных для представления;
  • Определить собственную версию адаптера для ListView, который будет использовать созданную модель данных.

Ключевой особенностью этого решения будет динамическое создание виджетов Checkbox в каждой записи списка внутри контейнера LinearLayout.

Пример построения подобного интерфейса можно посмотреть на GitHib.

Поделиться

Комментарии

Ваш комментарий будет первым!

Внимание!

Комментарии должны соответствовать тематике сайта, участникам необходимо соблюдать уважительную форму общения, запрещены оскорбления в обсуждениях в любой форме, не допускается писать текст коммерческого и рекламного характера, пропагандировать темы, несовместимые с общепринятыми законами морали и приличия. Не допустимые сообщения будут редактироваться или удаляться.

Добавить свой комментарий



Введите код, показанный выше:

(Примечание: Если вы не можете прочитать цифры в приведенном выше изображении, перезагрузите страницу, чтобы создать новое.)

Поля, помеченные знаком * обязательны к заполнению

Подождите, идет добавление комментария...