Подготовка проекта
Добавим на основную страницу TextView с id main_text для вывода текста во всплывающих окнах и три кнопки. Текст для TextView добавим в strings.xml (например, под именем logo). Для «слогана» используем ещё один TextView, связанный со строкой из strings.xml. Установим шрифт Montserrat Bold (предполагается, что он загружен), размер 20 sp и цвет (рекомендуется использовать colors.xml). Кнопки разместим в горизонтальном LinearLayout, вложенном в ConstraintLayout. Установим отступы для LinearLayout, чтобы кнопки не занимали всю ширину экрана. Каждой кнопке зададим текст («Кнопка 1», «Кнопка 2», «Кнопка 3»). Для второй кнопки изменим фон (backgroundTint), добавим обводку (strokeWidth) и скругление углов (cornerRadius). Между кнопками добавим отступы (layout_marginStart и layout_marginEnd).
Обработка событий нажатия кнопок
Обработаем нажатия кнопок двумя способами: setOnClickListener в коде и создание отдельных методов. Создадим метод buttonClick(). Для двух кнопок в атрибуте onClick укажем этот метод. Для импорта View используем import android.view.View;. Метод buttonClick() должен принимать параметр View v.
Создадим поле buttonSecond (тип Button) и в onCreate инициализируем его с помощью findViewById. Добавим обработчик событий для buttonSecond с помощью setOnClickListener, вызывающий метод отображения всплывающего окна.
Toast-сообщения
Создадим приватный метод showInfo() для отображения Toast-сообщений. Он принимает строку с текстом. Создадим Toast с помощью Toast.makeText(), указав контекст (this), текст и длительность (Toast.LENGTH_LONG или Toast.LENGTH_SHORT). Вызов show() отобразит Toast. В обработчике buttonSecond вызовем showInfo(), передав текст из main_text.
Изменение свойств кнопок
Добавим в showInfo() параметр типа Button. Преобразуем переданный View к Button с помощью (Button) v. После нажатия изменим текст кнопки с помощью setText() и фон с помощью setBackgroundColor(). Можно использовать ColorStateListItem для выбора цвета из палитры.
AlertDialog
Создадим метод showInfoAlert() для создания AlertDialog. Используем AlertDialog.Builder: установим заголовок (setTitle()), сообщение (setMessage()), кнопки (setPositiveButton() и setNegativeButton()) и запретим отмену (setCancelable(false)). Обработчик положительной кнопки (setPositiveButton) вызовет finish() (закрытие приложения), а отрицательной (setNegativeButton) — dismiss() (закрытие диалогового окна). create() создаст AlertDialog, а show() — отобразит его. Для второй кнопки вызовем showInfoAlert() с текстом «Вы хотите закрыть приложение?».
Мы рассмотрели создание и использование Toast и AlertDialog, демонстрируя различные способы обработки событий и изменения свойств элементов интерфейса. Это позволяет создавать интерактивные приложения.