Simon Andersson
Simon Andersson

Reputation: 791

datePickerDialog how to set the shown dates?

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();
        }
    });

Upvotes: 1

Views: 76

Answers (3)

PEHLAJ
PEHLAJ

Reputation: 10126

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

Upvotes: 1

Jay Rathod
Jay Rathod

Reputation: 11245

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

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

Upvotes: 1

Behzad Ashrafian
Behzad Ashrafian

Reputation: 267

DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
dialog.getDatePicker().setMaxDate(new Date().getTime());

Upvotes: 1

Related Questions