AlertDialog

Пример AlertDialog (Диалоговое окно) в Android

Компонент AlertDialog (диалоговое окно) — один из важных элементов пользовательского интерфейса в любом приложении на Андроид. AlertDialog чаще всего используется в тех случаях, когда нам спросить пользователя о чем-то (разрешение/подтверждение выполнения какой-то операции). В этом уроке мы рассмотрим создание диалогового окна с помощью различных компоновок.

Теория по AlertDialog в Android

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

Для того, чтобы создать AlertDialog в Android, нам необходимо создать объект AlertDialogBuilder, который является вложенным классом AlertDialog. Рассмотрим пример:

Компоновка Android AlertDialog

Компоновка диалогового окна позволяет работать с несколькими составляющими:

Название — необязательный элемент диалогового окна

Контент — текст, который будет показан пользователю. Это может быть сообщение, список или же свой полностью кастомный макет.

Кнопки. Они бывают трех типов: для подтверждения (ОК), отмены и дополнительная (настраиваемая) кнопка. Любое диалоговое окно может содержать максимум три кнопки действий.

Методы для работы с диалоговыми окнами

  • Метод setIcon(Drawable icon) устанавливает иконку (значок) в диалоговое окно
  • Метод setCancelable(boolean cancelable) устанавливает возможность отмены действия в AlertDialog.
  • Метод setMessage(CharSequence message) устанавливает сообщение, которое будет отображаться в диалоговом окне.
  • setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener) задает список элементов, которые будут отображаться в диалоговом окне. Выбранный пользователем элемент списка будет отслеживаться слушателем
  • После нажатия на кнопку «Отмена» диалогового окна, сработает метод setOnCancelListener (DialogInterface.OnCancelListener onCancelListener).
  • Метод setTitle(CharSequence title) устанавливает заголовок в AlertDialog.
  • Метод getListView() получает тип списка, используемый в диалоговом окне.

Пример использования AlertDialog в Android

Давайте рассмотрим пример работы с AlertDialog. Начнем с макета, в котором расположим 3 кнопки. Каждая кнопка будет вызывать диалоговое окно с различной компоновкой: с 1 кнопкой — ОК, с двумя кнопками — Отмена и ОК, а также окно с тремя вариантами: ОК, Отмена и так называемая нейтральная кнопка.

Начнем с макета activity_main.xml нашего приложения:

Как видно из макета, у нас 3 вложенных виджета Button в корневой RelativeLayout. Атрибуты android:text как и полагается, вынесены в strings.xml в папке res/values/:

Теперь инициализируем наши виджеты в коде. Также нам нужно проставить слушатели на кнопки и по нажатию вызывать нужный AlertDialog. Сделаем мы это через реализацию интерфейса View.OnClickListener, а вызов нужного диалогового окна будет происходить в операторе switch. Листинг класса MainActivity приведен ниже:

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

AlertDialog Result

Следите за обновлениями и подписывайтесь на рассылку новых статей.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *