Диалог выбора (picker)

Android предоставляет компоненты для выбора даты и времени в виде готовых диалогов. Каждый диалог позволяет выбрать отдельную часть времени (час, минута, AM/PM) и даты (день, месяц, год). Использование данных диалогов гарантирует, что пользователь укажет дату и время в корректном формате соответствующей локали.

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

Хотя класс DialogFragment был впервые добавлен в Android 3.0 (API 11), вы можете использовать библиотеку поддержки для его работы с более старыми версиями.

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

Диалог выбора времени

Для отображения диалога выбора времени, необходимо расширить класс DialogFragment, где метод onCreateDialog() будет возвращать объект типа TimePickerDialog.

Создание дочернего класса DialogFragment

Для создания дочернего класса необходимо:

Пример:

Подробности смотрите в документации к классу TimePickerDialog.

Показываем диалог выбора времени

После создания класса DialogFragment как показано выше, вы можете отобразить диалог выбора времени, создав экземпляр класса DialogFragment и вызвав метод show().

Например, отобразим диалог при нажатии кнопки. Разметка кнопки:

И определим сам метод:

Данный метод вызывает метод show() нового экземпляра класса DialogFragment, который описан выше. Метод show() принимает в качестве аргументов экземпляр класса FragmentManager и уникальное имя для фрагмента.

Внимание: если приложение поддерживает старые версии Android ниже 3.0, не забудьте вызвать метод getSupportFragmentManager() для получения экземпляра класса FragmentManager. Также убедитесь, что явление, отображающее диалог выбора времени расширяет класс FragmentActivity, а не стандартный класс Activity.

Создание диалога выбора даты

Создание диалога выбора даты аналогично созданию диалога выбора времени. Единственная разница – это тип диалога, создаваемый для фрагмента.

Для отображения компонента необходимо расширить класс DialogFragment, где метод onCreateDialog() будет возвращать объект типа DatePickerDialog

Для создания дочернего класса необходимо:

Пример:

Подробности смотрите в документации к классу DatePickerDialog.

Показываем диалог выбора даты

Все, что нужно для отображения диалога выбора даты, это создать экземпляр класса DialogFragment, который мы создали выше, и вызвать метод show().

Например, отобразим диалог выбора даты при нажатии на кнопку. Разметка кнопки:

И опишем сам метод:

Данный метод вызывает метод show() нового экземпляра класса DialogFragment, который описан выше. Метод show() принимает в качестве аргументов экземпляр класса FragmentManager и уникальное имя для фрагмента.

Внимание: если приложение поддерживает старые версии Android ниже 3.0, не забудьте вызвать метод getSupportFragmentManager() для получения экземпляра класса FragmentManager. Также убедитесь, что явление, отображающее диалог выбора времени расширяет класс FragmentActivity, а не стандартный класс Activity.

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