1

I am working on an Android application in which I am using date picker to select dates. I am using it for date of birth, now I want to restrict user not to select any future date.

My code is given below:

private void checkDate(){
        final Calendar c = Calendar.getInstance();
        mSelectedYear = c.get(Calendar.YEAR);
        mSelectedMonth = c.get(Calendar.MONTH);
        mSelectedDay = c.get(Calendar.DAY_OF_MONTH);
    }

txtDateOfBirth.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                showDialog(mDATE_PICKER_ID);
            }
        });


    @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
            case mDATE_PICKER_ID:
                return new DatePickerDialog(this, pickerListener, mSelectedYear,mSelectedMonth, mSelectedDay);
            }
            return null;
        }

        private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker view, int selectedyear,
                    int selectedmonth, int selectedday) {
                mSelectedYear = selectedyear;
                mSelectedMonth = selectedmonth;
                mSelectedDay = selectedday;

                txtDateOfBirth.setText(new StringBuilder().append(mSelectedMonth + 1).append("-").append(mSelectedDay).append("-").append(mSelectedYear).append(" "));
                mDateSelected = new StringBuilder().append(mSelectedDay).append("-").append(mSelectedMonth + 1).append("-").append(mSelectedYear).toString();
            }

        };
halfer
  • 19,824
  • 17
  • 99
  • 186
Usman Khan
  • 3,739
  • 6
  • 41
  • 89

1 Answers1

2

Use this to restrict the dialog to the current date:

datePicker.getDatePicker().setMaxDate(new Date().getTime());

But remember it will only works for API 11 or above

Umair
  • 6,366
  • 15
  • 42
  • 50