Android Calendar View для Date Picker
Я пишу свое первое приложение, и у меня вопрос о DatePicker
.
Мое приложение требует, чтобы пользователь вводил дату. Самым удобным для пользователя способом было бы всплывающее окно, подобное календарю, которое отображает текущий месяц, как сетка календаря, примерно так:
![enter image description here]()
Я хочу использовать это вместо интерфейса DatePicker
, в котором есть поля Месяц, День и Год, каждый с кнопкой вверх и вниз для увеличения/уменьшения.
Является ли этот тип функций встроенным в любой виджет Android или представление, или мне нужно будет создать свой собственный пользовательский компонент для этого? Я полагал, что это уже будет существовать, зная, насколько этот тип пользовательского интерфейса используется так часто в не мобильных приложениях и веб-страницах.
Спасибо!
Ответы
Ответ 1
Является ли этот тип функций встроенным в любой вид или вид Android, или мне нужно будет создать свой собственный компонент для этого?
В Android SDK нет компонента для этого, извините. Виджет, который вы показываете, слишком мал для сенсорного экрана. Вы можете реализовать что-то большее (см. Приложение "Календарь" ), но для этого вы в значительной степени зависимы.
Ответ 2
Теперь, в 2014 году, даже родной DatePicker
(ссылка) содержит небольшой Holo, выглядящий CalendarView
(link), чтобы выбрать день в месяце.
Вы можете выбрать, если оба прядильника и CalendarView
или только один из них отображается, установив:
-
android:calendarViewShown
-
android:spinnersShown
Я не уверен, что это только API-уровень 16+, или если он был даже в Ice Cream Sandwich, но он есть. Так выглядит по умолчанию:
![enter image description here]()
Кроме того, на уровне API 21 и выше существует новый материал themed DatePicker
, который выглядит следующим образом:
![enter image description here]()
Это значение по умолчанию для API 21+, и больше нет прядильщиков, но вы можете переключиться обратно на Holo, установив
android:datePickerMode="spinner"
в вашем XML.
Ответ 3
Поскольку API 11 существует изначально: CalendarView
![enter image description here]()
Этот вид находится в HoloEverywhere, поскольку API 7.
Ответ 4
что я нашел до сих пор:
Ответ 5
Недавно я написал это как модульное приложение. Вот пример пример кода, документация с screenshots и . apk download.
Ответ 6
Нашел хорошую реализацию в http://caughtinthemobileweb.wordpress.com/2011/06/20/how-to-implement-calendarview-in-android/
Кроме того, с уровня API 11 (Android 3.0) появилась встроенная реализация CalendarView http://developer.android.com/reference/android/widget/CalendarView.html
Ответ 7
Попробуйте использовать этот компонент:
https://github.com/truefedex/android-date-picker
![введите описание изображения здесь]()
Если вы хотите использовать его, как popup, напишите на вашем onclick:
if (calendarPopup == null) {
calendarPopup = new PopupWindow(getContext());
CalendarPickerView calendarView = new CalendarPickerView(getContext());
CalendarNumbersView calendar = (CalendarNumbersView) calendarView.findViewById(com.phlox.datepick.R.id.calendar);
calendar.setShowDayNames(false);
calendarView.setListener(onDateSelectionListener);
calendarPopup.setContentView(calendarView);
calendarPopup.setWindowLayoutMode(
MeasureSpec.makeMeasureSpec(llCalendar.getWidth(), MeasureSpec.EXACTLY),
ViewGroup.LayoutParams.WRAP_CONTENT);
calendarPopup.setHeight(1);
calendarPopup.setWidth(llCalendar.getWidth());
calendarPopup.setOutsideTouchable(true);
}
calendarPopup.showAsDropDown(llCalendar);
Ответ 8
вы можете использовать эту библиотеку для выбора даты
https://github.com/square/android-times-square/