Установите ограничения даты датпикера для android datepicker

Я использую datePicker в android для отображения изображений на основе выбранных пользователем дат. Мне нужно ограничить указанные даты на определенные дни, например, с 1 января 2010 года по 31 декабря 2010 года. Простой, как я думал, но нет, где я могу найти ответ о том, как ограничить эти даты.

Кто-нибудь знает, как ограничить даты для Android DatePicker

Solutions Collecting From Web of "Установите ограничения даты датпикера для android datepicker"

Вы можете просто установить:

dateDialog.getDatePicker().setMaxDate(new Date().getTime()); 

а также

 dateDialog.getDatePicker().setMinDate(new Date().getTime()); 

Где dateDialog – это

 new DatePickerDialog() 

И тип параметра для MaxDate и MinDate – long

Возможно, слишком поздно ответить, но легко установить min и max дату DatePickerDialog . Работает для всех версий Android . Просто вам нужно вернуть DatePickerDialog на основе версии Android

 protected Dialog onCreateDialog(int id) { switch ( id ) { case DATE_DIALOG_ID: DatePickerDialog dialog = null; if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) { dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDate) { mTextView.setText(selectedDate + "/" + selectedMonth + 1 + "/" + selectedYear); } }, year, month - 1, date); Calendar currentDate = Calendar.getInstance(); dialog.getDatePicker().setMaxDate(currentDate.getTimeInMillis()); //If you need you can set min date too } else { dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDate) { mTextView.setText(selectedDate + "/" + selectedMonth + 1 + "/" + selectedYear); } }, year, month - 1, date) { @Override public void onDateChanged(DatePicker view, int year, int month, int day) { if ( year <= maxYear && month + 1 <= maxMonth && date <= maxDate ) //meets your criteria { view.updateDate(year, month, date); //update the date picker to selected date } else { view.updateDate(maxYear, maxMonth - 1, maxDate); // or you update the date picker to previously selected date } } }; } return dialog; } return null; } 

Думаю, вам нужно реализовать свой собственный DatePicker . DatePicker этого было бы следующее: «Только некоторые разработчики когда-либо ограничивали DatePicker поэтому им нужно реализовать свою функциональность».

Почему вы не должны создавать новый макет, такой как DatePicker с настройкой. Вы можете делать это со Spinners и Forloops.

U может добиться этого, набрав простую строку

 mDatePicker.getDatePicker().setMinDate(System.currentTimeMillis()); mcurrentDate.add(Calendar.MONTH,6); mDatePicker.getDatePicker().setMaxDate(mcurrentDate.getTimeInMillis());