Я хочу показать всплывающее окно DatePicker. Я нашел несколько примеров, но я не получаю это должным образом. У меня есть один текст редактирования, и я хочу, чтобы при нажатии на текст редактирования всплывающее окно выбора даты и после установки даты дата отображалась в тексте редактирования в формате дд / мм / гггг. Пожалуйста, предоставьте мне пример кода или хорошие ссылки.
android
android-datepicker
Сурабхи Пандей
источник
источник
Ответы:
Попробуйте это в файле XML:
Теперь в файле Java:
Теперь добавьте метод в вышеупомянутой деятельности.
Добавьте
android:focusable="false"
в XML-файл EditText, чтобы сделать возможным одно касание.источник
android:focusable="false"
иonclicklistner
android:longClickable="false"
тоже. В противном случае пользователь может вызвать параметр вставки в поле (и, таким образом, ввести недопустимые даты).Не удалось заставить кого-либо из них работать, поэтому добавлю свой на всякий случай, если это поможет.
Также то, что не упоминается в других. Убедитесь, что вы добавили следующее в EditText xml.
В противном случае, как в моем случае, клавиатура будет продолжать появляться. Надеюсь, это поможет кому-то
источник
источник
Также есть еще один способ многократного использования:
Создать класс:
Затем вызовите этот класс в функции onCreate:
источник
class setDate implements View.OnFocusChangeListener, DatePickerDialog.OnDateSetListener {
?JAVA FILE
источник
Вот как я это делаю: аналогично выбранному ответу, но с использованием статического диалогового класса, так что он более пригоден для повторного использования, а также с использованием onFocusChange вместо onClick.
И диалог выбора даты.
источник
Выбранный ответ мне не помог, так как мне пришлось один раз нажать на поле «EditText», а затем снова нажать на него, прежде чем сработает OnClickListener. Мне удалось это исправить, заменив OnClickListener на OnTouchListener, на случай, если кто-нибудь столкнется с подобной проблемой, вот как выглядит мой код:
источник
# 1. Я хочу показать средство выбора даты с текущей датой как предварительно выбранной (я использую нож для инъекций)
2. Если вы хотите предварительно выбрать дату, замените последнюю часть на
тогда вы можете получить его, используя переменную myCalendar или непосредственно текст в вашем представлении.
источник
Решение с использованием фрагментов, MvvmCross и Xamarin.Android
источник
источник
Мой класс для шоу
DatePicker
. Я могу использовать дляEditText
,TextView
илиButton
С помощью
источник
Использование DataBinding:
(см
focusable
,inputType
иonClick
)Внутри ViewModel:
источник
Использование:
источник
Используйте эту простую технику, чтобы сделать это:
Шаг 1: СОЗДАТЬ ФРАГМЕНТНЫЙ ДИАЛОГ
Шаг 2: В НЕОБХОДИМОЙ ДЕЯТЕЛЬНОСТИ СЛЕДУЙТЕ ЭТОМУ
Действие должно реализовывать: DatePickerDialog.OnDateSetListener
Установите onClickListener на кнопку:
Шаг 3: переопределить OnDateSetListener
Поэтому мы можем использовать любое форматирование для даты :)
источник
Я испробовал все предложенные способы, но у всех есть свои проблемы.
На мой взгляд, лучшим решением было бы использовать структуру кадра, как показано ниже:
и затем добавление кода DatePickerDialog, который был красиво написан в ответе @ Android.
источник
Я думал, что лучше переопределить класс EditText ...
И использовать это в XML вместо этого ...
источник
источник
Использовать это
источник
Порт Kotlin, вызов функции setDatePicker
источник
источник
Попробуй это
источник
editText.setOnClickListener (new View.OnClickListener () {
источник
Диалог выбора даты
источник
Попробуй это:
источник
Вы также можете установить минимальную дату и максимальную дату с помощью этих заявлений.
Примечание: добавьте эти строки перед datepickerDialog.show (); заявление, что вы получите дату, как это = 12/2/2017.
Надеюсь, мой ответ поможет.
источник
Это сработало для меня в январе 2020 года
XML часть:
Java часть:
источник
Вот функция расширения Kotlin:
Использование:
В деятельности:
Во фрагментах:
источник
Мое решение для Xamarin.Android с MvvmCross на основе Линь:
Для ванильной версии Xamarin.Android просто замените WeakSubscribe обычной подпиской на событие Click EditText, не забывая отписаться в переопределении метода Dispose.
источник