Ответ 1
Update:
Как указано jfcartier, теперь также MaterialDateTimePicker. Это, вероятно, более приятное решение, чем тот, который приведен ниже, поскольку он имеет удобный API.
Вы можете попробовать библиотеку android-betterpickers. Он имеет виджет CalendarDatePickerDialog
, который похож на тот, который вы хотите. Он обеспечивает светлую и темную тему, но для настройки цветов вам нужно добавить его в качестве проекта библиотеки и самостоятельно изменить код.
Использование довольно просто, как только вы добавите библиотеку в свой проект.
// Create date picker listener.
CalendarDatePickerDialog.OnDateSetListener dateSetListener = new CalendarDatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(CalendarDatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
// Set date from user input.
Calendar date = Calendar.getInstance();
date.set(Calendar.HOUR_OF_DAY, 9);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.YEAR, year);
date.set(Calendar.MONTH, monthOfYear);
date.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// Do as you please with the date.
}
};
// Create dismiss listener.
CalendarDatePickerDialog.OnDialogDismissListener dismissListener = new CalendarDatePickerDialog.OnDialogDismissListener() {
@Override
public void onDialogDismiss(DialogInterface dialoginterface) {
// Do something when the user dismisses the dialog.
}
};
// Show date picker dialog.
CalendarDatePickerDialog dialog = new CalendarDatePickerDialog();
dialog.setOnDateSetListener(dateSetListener);
dialog.setOnDismissListener(dismissListener);
dialog.setThemeDark(false);
dialog.show(getSupportFragmentManager(), "DATE_PICKER_TAG");
Конечный результат должен выглядеть следующим образом (извините за плохое качество).