1

I am using a DatePickerDialog as shown below. I want to limit the dates shown so the user can't pick a date after today, but can pick any date in the past. How do I do this?

 final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
            mMissedStampDate = new DateTime().withDate(i, i1, i2);
            textView.setText(mMissedStampDate.toString("yyyy-MM-dd"));
        }
    };

    final DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, onDateSetListener, mMissedStampDate.getYear(), mMissedStampDate.getMonthOfYear(), mMissedStampDate.getDayOfMonth());

    textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            datePickerDialog.show();
        }
    });
PEHLAJ
  • 9,590
  • 9
  • 39
  • 51
Simon Andersson
  • 703
  • 1
  • 8
  • 26
  • 1
    try this link http://stackoverflow.com/questions/17878751/how-to-disable-dates-before-today-date-in-datepickerdialog-android – Shashank Verma May 09 '17 at 09:40

3 Answers3

1

Try

final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
        mMissedStampDate = new DateTime().withDate(i, i1, i2);
        textView.setText(mMissedStampDate.toString("yyyy-MM-dd"));
    }
};

final DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, onDateSetListener, mMissedStampDate.getYear(), mMissedStampDate.getMonthOfYear(), mMissedStampDate.getDayOfMonth());

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());

textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        datePickerDialog.show();
    }
});

Use setMinDate & setMaxDate

Official documentation: https://developer.android.com/reference/android/widget/DatePicker.html

PEHLAJ
  • 9,590
  • 9
  • 39
  • 51
1
DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
dialog.getDatePicker().setMaxDate(new Date().getTime());
Behzad Ashrafian
  • 266
  • 5
  • 17
1

From DatePickerDialog with getDatePicker() method. Set the max date to current date with setMaxDate().

mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis());
Jay Rathod RJ
  • 10,843
  • 5
  • 33
  • 56