0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>По дефолту в Android определены 2 диалоговых окна, позволяющих выбрать дату и время -- это<strong>DatePickerDialog</strong>и<strong>TimePickerDialog</strong>. Рассмотрим их работу более подробно.</p>
1
<p>По дефолту в Android определены 2 диалоговых окна, позволяющих выбрать дату и время -- это<strong>DatePickerDialog</strong>и<strong>TimePickerDialog</strong>. Рассмотрим их работу более подробно.</p>
2
<p>Кроме установки даты,<strong>DatePickerDialog</strong>дает возможность обрабатывать выбор даты посредством слушателей<strong>OnDateChangedListener</strong>и<strong>OnDateSetListener</strong>. А это уже, в свою очередь, дает возможность применять выбранную дату далее в программном приложении.</p>
2
<p>Кроме установки даты,<strong>DatePickerDialog</strong>дает возможность обрабатывать выбор даты посредством слушателей<strong>OnDateChangedListener</strong>и<strong>OnDateSetListener</strong>. А это уже, в свою очередь, дает возможность применять выбранную дату далее в программном приложении.</p>
3
<p>Схожим образом работает и<strong>TimePickerDialog</strong>-- он тоже дает возможность обрабатывать выбор времени посредством слушателей<strong>OnTimeChangedListener</strong>и<strong>OnTimeSetListener</strong>.</p>
3
<p>Схожим образом работает и<strong>TimePickerDialog</strong>-- он тоже дает возможность обрабатывать выбор времени посредством слушателей<strong>OnTimeChangedListener</strong>и<strong>OnTimeSetListener</strong>.</p>
4
<p>Однако в процессе работы с этими компонентами следует учитывать, что отсчет месяцев в<strong>DatePickerDialog</strong>начинается с нуля. Например, январь -- это 0, а декабрь -- 11. Аналогично и отсчет секунд/минут в<strong>TimePickerDialog</strong>-- он будет осуществляться с 0 до 59, тогда как отсчет часов -- с 0 до 23.</p>
4
<p>Однако в процессе работы с этими компонентами следует учитывать, что отсчет месяцев в<strong>DatePickerDialog</strong>начинается с нуля. Например, январь -- это 0, а декабрь -- 11. Аналогично и отсчет секунд/минут в<strong>TimePickerDialog</strong>-- он будет осуществляться с 0 до 59, тогда как отсчет часов -- с 0 до 23.</p>
5
<p>Давайте посмотрим, как<strong>DatePickerDialog</strong>и<strong>TimePickerDialog</strong>работают в приложении. Итак, определим в<strong>activity_main.xml</strong>следующую разметку интерфейса:</p>
5
<p>Давайте посмотрим, как<strong>DatePickerDialog</strong>и<strong>TimePickerDialog</strong>работают в приложении. Итак, определим в<strong>activity_main.xml</strong>следующую разметку интерфейса:</p>
6
<p>У нас определены 2 кнопки для выбора времени и даты, а также текстовое поле, которое отображает выбранные время и дату. Давайте теперь внесем изменения в код<strong>MainActivity</strong>:</p>
6
<p>У нас определены 2 кнопки для выбора времени и даты, а также текстовое поле, которое отображает выбранные время и дату. Давайте теперь внесем изменения в код<strong>MainActivity</strong>:</p>
7
<p>Ключевой класс в нашем случае -- это<strong>java.util.Calendar</strong>, хранимый в стандартной библиотеке классов<strong>Java</strong>. При этом в методе setInitialDateTime() мы получаем из экземпляра данного класса число миллисекунд dateAndTime.getTimeInMillis() и посредством форматирования осуществляем вывод на текстовое поле.</p>
7
<p>Ключевой класс в нашем случае -- это<strong>java.util.Calendar</strong>, хранимый в стандартной библиотеке классов<strong>Java</strong>. При этом в методе setInitialDateTime() мы получаем из экземпляра данного класса число миллисекунд dateAndTime.getTimeInMillis() и посредством форматирования осуществляем вывод на текстовое поле.</p>
8
<p>Что касается метода setDate(), то он вызывается при нажатии на кнопку и показывает окно для выбора даты. Во время создания окна обработчик выбора даты<strong>DatePickerDialog.OnDateSetListener</strong>передается объекту этого метода. При этом происходит изменение даты на текстовом поле.</p>
8
<p>Что касается метода setDate(), то он вызывается при нажатии на кнопку и показывает окно для выбора даты. Во время создания окна обработчик выбора даты<strong>DatePickerDialog.OnDateSetListener</strong>передается объекту этого метода. При этом происходит изменение даты на текстовом поле.</p>
9
<p>Так же работает и метод setTime(), отображающий окно для выбора времени. Тут объект окна применяет обработчик выбора времени<strong>TimePickerDialog.OnTimeSetListener</strong>, меняющий время на текстовом поле.</p>
9
<p>Так же работает и метод setTime(), отображающий окно для выбора времени. Тут объект окна применяет обработчик выбора времени<strong>TimePickerDialog.OnTimeSetListener</strong>, меняющий время на текстовом поле.</p>
10
<p>После запуска мы можем нажать на кнопку изменения времени и установить время:</p>
10
<p>После запуска мы можем нажать на кнопку изменения времени и установить время:</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