4

I want to disable all Next(after) dates from today date in DatePickerDialog.

I am using below code to create DatePickerDialog:

    Calendar calendar = Calendar.getInstance();
    mYear = calendar.get(Calendar.YEAR);
    mMonth = calendar.get(Calendar.MONTH);
    mDay = calendar.get(Calendar.DAY_OF_MONTH);

 //OnDateSetListener
 private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker arg0, int year, int monthOfYear, int dayOfMonth) {
        calendar.set(year, monthOfYear, dayOfMonth);
        String currentDate = date_format.format(calendar.getTime());
        ...
    }
};
 //Create DatePickerDialog here
 protected Dialog onCreateDialog(int id) {
    if (id == 999) {
        DatePickerDialog dpDialog = new DatePickerDialog(getContext(), myDateListener, mYear, mMonth, mDay);

        return dpDialog;
    }
    return null;
}

Please suggest what I have to do for disable all previous date in datepicker dialog.

pRaNaY
  • 24,642
  • 24
  • 96
  • 146
  • Possible duplicate of [How to Disable future dates in Android date picker](https://stackoverflow.com/questions/20970963/how-to-disable-future-dates-in-android-date-picker) – Sandeep Yohans Jun 27 '18 at 10:48

1 Answers1

17

Just pass current date in setMaxDate() of DatePickerDialog.

DatePickerDialog dpDialog = new DatePickerDialog(getContext(), myDateListener, mYear, mMonth, mDay);
dpDialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());

or

dpDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
Ravi
  • 34,851
  • 21
  • 122
  • 183