Reputation: 791
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
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
Reputation: 11245
From DatePickerDialog
with getDatePicker()
method. Set the max date
to current date
with setMaxDate()
.
mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis());
Upvotes: 1
Reputation: 267
DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
dialog.getDatePicker().setMaxDate(new Date().getTime());
Upvotes: 1