Диалоговые окна в Android | OTUS

Курсы

Программирование
Выбор профессии в IT
-99%
Python Developer. Basic Специализация Python Developer Python Developer. Professional Golang Developer. Professional Базы данных iOS Developer. Basic Computer Science Android Developer. Professional Team Lead Android Developer. Basic Специализация Android-разработчик Vue.js разработчик Groovy Developer JavaScript Developer. Basic Специализация Java-разработчик C++ Developer. Basic Специализация Fullstack developer Unity Game Developer. Basic PHP Developer. Professional Agile Project Manager PostgreSQL для администраторов баз данных и разработчиков MS SQL Server Developer Unreal Engine Game Developer. Professional Web-разработчик на Python Cloud Solution Architecture Flutter Mobile Developer PHP Developer. Basic Специализация PHP Developer Rust Developer Буткемп Java Unity VR/AR Developer
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Диалоговые окна в Android

spec_android-20219-e709d6.png

По дефолту в Android определены 2 диалоговых окна, позволяющих выбрать дату и время -- это DatePickerDialog и TimePickerDialog. Рассмотрим их работу более подробно.

Кроме установки даты, DatePickerDialog дает возможность обрабатывать выбор даты посредством слушателей OnDateChangedListener и OnDateSetListener. А это уже, в свою очередь, дает возможность применять выбранную дату далее в программном приложении.

Схожим образом работает и TimePickerDialog -- он тоже дает возможность обрабатывать выбор времени посредством слушателей OnTimeChangedListener и OnTimeSetListener.

Однако в процессе работы с этими компонентами следует учитывать, что отсчет месяцев в DatePickerDialog начинается с нуля. Например, январь -- это 0, а декабрь -- 11. Аналогично и отсчет секунд/минут в TimePickerDialog -- он будет осуществляться с 0 до 59, тогда как отсчет часов -- с 0 до 23.

Давайте посмотрим, как DatePickerDialog и TimePickerDialog работают в приложении. Итак, определим в activity_main.xml следующую разметку интерфейса:

1-1801-45a958.png

У нас определены 2 кнопки для выбора времени и даты, а также текстовое поле, которое отображает выбранные время и дату. Давайте теперь внесем изменения в код MainActivity:

2-1801-1d482c.png 3-1801-df6bc1.png

Ключевой класс в нашем случае -- это java.util.Calendar, хранимый в стандартной библиотеке классов Java. При этом в методе setInitialDateTime() мы получаем из экземпляра данного класса число миллисекунд dateAndTime.getTimeInMillis() и посредством форматирования осуществляем вывод на текстовое поле.

Что касается метода setDate(), то он вызывается при нажатии на кнопку и показывает окно для выбора даты. Во время создания окна обработчик выбора даты DatePickerDialog.OnDateSetListener передается объекту этого метода. При этом происходит изменение даты на текстовом поле.

Так же работает и метод setTime(), отображающий окно для выбора времени. Тут объект окна применяет обработчик выбора времени TimePickerDialog.OnTimeSetListener, меняющий время на текстовом поле.

После запуска мы можем нажать на кнопку изменения времени и установить время:

4-1801-80da56.png

Таким же образом функционирует и окно установки даты:

5-1801-758371.png

По материалам https://metanit.com/java/android/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться