DatePicker
Элемент DatePicker позволяет пользователю выбрать дату (число, месяц, год). Данный виджет используют как правило на отдельном экране. Также существует похожее по функционалу диалоговое окно DatePickerDialog.
DatePicker находился в разделе Date & Time в Android Studio 3.01. Сейчас на панели инструментов данного компонента нет, поэтому придётся добавлять вручную.
Нужно помнить, что внутренняя нумерация месяцев в Android начинается с 0, поэтому январь = 0, февраль = 1 и т.д. Поэтому как правило, в коде следует прибавлять единицу к значению месяца при работе с датой или наоборот — отнимать единицу, если данные поступают снаружи (например, из текстового поля).
Добавим на экран текстовую метку, кнопку и виджет даты:
Пользователь может выбрать любую дату на виджете, а обычный щелчок на кнопке позволит отобразить выбранную дату в текстовой метке. Длительное нажатие на кнопку устанавливает текущую дату на виджете и в текстовой метке.
Настройка даты на самом виджете происходит через метод init(). Изменение даты можно прослушивать через OnDateChangedListener():
Настройка компонента
По умолчанию DatePicker состоит из двух элементов — Spinner и CalendarView. Вы можете настроить внешний вид компонента, если укажете через XML-атрибуты android:calendarViewShown и android:spinnersShown, какой элемент не нужно выводить. Также можно это сделать программно через методы setCalendarViewShown() и setSpinnersShown() (API level 11).
Напишем пример программного управления внешним видом DatePicker:
Код для активности:
Новый внешний вид в Android 5.0 (API 21) Lollipop
В Android 5.0 (API 21) внешний вид компонента изменился. Поэтому неплохо бы проверить, всё ли работает в старом коде.
Скриншот взят из статьи Криминальное чтиво.
Источник
Полный список
Урок будет аналогичен прошлому, но теперь в диалоге мы будем задавать дату, а не время. Такой диалог называется DatePickerDialog.
Сделаем простое приложение. На экране будет TextView, на него можно будет нажать и появится диалог для выбора даты. После выбора она отобразится в TextView.
Project name: P0591_DatePickerDialog
Build Target: Android 2.3.3
Application name: DatePickerDialog
Package name: ru.startandroid.develop.p0591datepickerdialog
Create Activity: MainActivity
В onCreate находим TextView.
В onClick вызываем метод showDialog и передаем ему ID диалога. Этот метод (showDialog) создает диалог с помощью отдельного метода и показывает его. ID используется для указания, какой именно диалог создавать и показывать.
Метод onCreateDialog – это и есть отдельный метод, который вызывается в showDialog для создания диалога. В этом методе мы смотрим, какой ID пришел на вход, создаем соответствующий диалог и возвращаем его.
В нашем случае мы создаем DatePickerDialog, используя конструктор:
context – контекст
callBack – это обработчик с интерфейсом DatePickerDialog.OnDateSetListener, метод которого срабатывает при нажатии кнопки ОК на диалоге
year – год, который покажет диалог
monthOfYear – месяц, который покажет диалог
dayOfMonth – день, который покажет диалог
myCallBack – объект, реализующий интерфейс DatePickerDialog.OnDateSetListener. У него только один метод – onDateSet, который предоставляет нам DatePicker из диалога, и год, месяц и день, которые он показывает. Т.е. то, что мы ввели в диалоге.
Эти данные мы пишем в tvDate.
Все сохраним и запустим. Нажмем на TextView. Появился диалог для ввода даты.
Сейчас он показывает 3 марта 2011, т.к. мы при создании передали ему значения myYear, myMonth и myDay. Месяцы он считает, начиная с нуля.
Текст показал новые значения. Обратите внимание, что месяц декабрь он выдал как число 11. Месяцы нумеруются с нуля.
Диалог также можно закрыть кнопкой Cancel или кнопкой Back на эмуляторе. В этом случае обработчик не сработает и текст не обновится.
На следующем уроке:
— создаем AlertDialog
— настраиваем заголовок, сообщение, картинку и кнопки
Присоединяйтесь к нам в Telegram:
— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование
— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме
Источник
Диалоговые окна
DatePickerDialog и TimePickerDialog
По умолчанию в Android уже определены два диалоговых окна — DatePickerDialog и TimePickerDialog , которые позволяют выбрать дату и время.
Кроме установки даты DatePickerDialog позволяет обработать выбор даты с помощью слушателей OnDateChangedListener и OnDateSetListener . Что позволяет использовать выбранную дату далее в приложении.
Подобным образом TimePickerDialog позволяет обработать выбор времени с помощью слушателей OnTimeChangedListener и OnTimeSetListener
Пи работе с данными компонентами надо учитывать, что отсчет месяцев в DatePickerDialog начинается с нуля, то есть январь будет иметь номер 0, а декабрь — 11. И аналогично в TimePickerDialog отсчет секунд и минут будет идти с 0 до 59, а часов — с 0 до 23.
Используем DatePickerDialog и TimePickerDialog в приложении. Определим следующую разметку интерфейса в activity_main.xml :
Здесь определены две кнопки для выбора даты и времени и текстовое поле, отображающее выбранные дату и время. И изменим код MainActivity :
Ключевым классом здесь является java.util.Calendar , который хранится в стандартной библиоетке классов Java. В методе setInitialDateTime() мы получаем из экземпляра этого класса количество миллисекунд dateAndTime.getTimeInMillis() и с помощью форматирования выводим на текстовое поле.
Метод setDate() , вызываемый по нажатию на кнопку, отображает окно для выбора даты. При создании окна его объекту передается обработчик выбора даты DatePickerDialog.OnDateSetListener , который изменяет дату на текстовом поле.
Аналогично метод setTime() отображает окно для выбора времени. Объект окна использует обработчик выбора времени TimePickerDialog.OnTimeSetListener , который изменяет время на текстовом поле.
И поле запуска, нажав на кнопку изменения времени, мы сможем установить время:
Источник
Как ввести свою дату в Android?
Добрый вечер.
Задача такая: нужно ввести дату (например дня рождения) и посчитать сколько прошло дней, то бишь сколько дней живешь.
План такой: текущую дату перевожу в миллисекунды, дату рождения перевожу в миллисекунды, вычитаю и перевожу в дни.
Вопрос: как ввести свою дату?) Никак не могу понять)
Пробовал таким образом вставлять дату и переводить в миллисекунды, но результат выдает неправильный.
Ввести дату в формате дд.мм.гггг, проверить корректность ввода и напечатать следующую дату
Помогите с кодом для данной задачи, пож-та. Написанный мною код, до конца не стал, ибо уже на.
Ввести дату в формате дд.мм.гггг, напечатать следующую дату
Ввести дату в формате дд.мм.гггг, напечатать следующую дату
Ввести одну дату и вывести дату следующего дня
Ограничиться условными операторами. Не использовать библиотеки time, datetime етц
Ввести одну дату и вывести дату следующего дня
Примеры: 1) Введите дату в программу, и она должна вывести вам дату следующего дня. (Например.
И ещё, время в адроиде в милисекундах, а там где ты проверяешь, возможно, в секундах.
Добавлено через 33 секунды
в разметке для этого элемента посмотри inputType или как-то так
Все, спасибо, уже получилось)) не знаю как, но таким способом, как я делал , вышло) может не замечал недочет какой-то.
Я поставил inputType = «date». но он не ставит точки. он разрешает вводить только цифры.
Тогда нужно что-то другое использовать, например это:
Там реализуешь логику, что пользователь может вводить только с 0 по 2 символ, с 3 по 5, с 6 по 10, остальное выставишь точки. Ну или кто по-проще посоветует, я не знаю.
Примерно с год назад делал что-то подобное:
Как добавить скины в свою игру на android?Unity3d
Думаю можно через Resources.Load менять спрайт своего персонажа,но как сделать чтобы этот.
Как в android studio поставить картинку(свою) на ImageButton?
нужно чтобы иконка у ImageButton стояла либо из интернета, либо из документов
Android Studio Как подключить свою базу данных
База данных *.sqlite Нужна помощь гуру, как образом это реализуется, не обязательно код, хотя бы.
Как ввести дату
Есть в текстовом файле дата в двух видах- 2005 Aug 18 00:04:38.966818 или 1124309078.966818 .
Как ввести свою переменную в формулу при ее записи средствами VBA
Записываю формулу в ячейку следующим образом Range(«C6»).FormulaR1C1 = «=IF(R2C =.
Источник
Пример работы с DatePickerDialog и TimePickerDialog в Android
В этом уроке мы создадим простое приложение с Date Picker и Time Picker Dialog. Эти компоненты используются для выбора даты и времени непосредственно самим пользователем. В коде они реализованы с помощью классов DatePickerDialog , TimePickerDialog и класса Calendar . Подробнее читайте ниже в статье.
Краткий обзор DatePickerDialog и TimePickerDialog в Android
Обычно выбор даты и времени в андроид реализуется с помощью независимых виджетов, но по отдельности они неудобны и занимают больше места на экране, поэтому их чаще используют внутри Dialog. Разработчики системы Android это заметили и создали удобные классы DatePickerDialog и TimePickerDialog соответственно для выбора даты и времени.
Для взаимодействия с пользователем в каждом из этих классов используются интерфейсы обратного вызова onDateSetListener() и onTimeSetListener() .
В конструкторе класса DatePickerDialog целых 5 параметров:
- Context — контекст приложения
- Функция обратного вызова: onDateSet() вызывается, когда пользователь устанавливает дату со следующими параметрами:
- int year — получает выбранный год из диалога
- int monthOfYear — хранит выбранный месяц из диалога
- int dayOfMonth — хранит выбранный день из диалога
- int mYear — год, который отображается при создании диалога
- int mMonth — месяц
- int mDay — день
В конструкторе класса TimePickerDialog также 5 параметров:
- Context — требуется контекст приложения
- Функция обратного вызова: onTimeSet() вызывается, когда пользователь устанавливает время со следующими параметрами:
- int hourOfDay — хранит выбранный час дня из диалога
- int minute — хранит выбранную минуту из диалога
- int mHours — час, который отображается при создании диалога
- int mMinute — минута, которая отображается при создании диалога
- boolean mBool — если false, то формат времени 24 часа, если true — 12 часов.
Подробнее о диалогах в Android читайте в этой статье и по этой ссылке.
Источник