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,980
  • 9
  • 41
  • 53
Simon Andersson
  • 751
  • 1
  • 9
  • 29
  • 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,980
  • 9
  • 41
  • 53
1
DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
dialog.getDatePicker().setMaxDate(new Date().getTime());
Behzad Ashrafian
  • 267
  • 5
  • 17
1

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

mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis());
Jay Rathod
  • 11,131
  • 6
  • 34
  • 58