0

I want to show dates only up to last month. And also up to today's date not future dates.

fromDate.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    final Calendar newCalendar = Calendar.getInstance();
    datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        newCalendar.set(year, monthOfYear, dayOfMonth);
        datePickerDialog.getDatePicker().setMaxDate(newCalendar.getTimeInMillis() + 1000);
        datePickerDialog.getDatePicker().setMinDate(newCalendar.getTimeInMillis() - 1000);
        fromDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
      }
    }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
    datePickerDialog.show();
  }
});
dda
  • 6,030
  • 2
  • 25
  • 34
suraj shinde
  • 230
  • 1
  • 7
  • 19

2 Answers2

1

Try this,

    fromDate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        final Calendar newCalendar = Calendar.getInstance();
        datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
          public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            newCalendar.set(year, monthOfYear, dayOfMonth);

            /*Set max date*/
            datePickerDialog.getDatePicker().getDatePicker().setMaxDate(new Date().getTime());

            // Subtract 1 month from Calendar updated date
             c.add(Calendar.MONTH, -1);

             // Set the Calendar new date as minimum date of date picker
              datePickerDialog.getDatePicker() .getDatePicker().setMinDate(newCalendar.getTimeInMillis());

          }
        }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
        datePickerDialog.show();
        }
});
Komal12
  • 3,340
  • 4
  • 16
  • 25
0

You can use maxDate and minDate attributes of DatePicker and same can be done using Java Code.You can refer to link for more information

Farmaan Elahi
  • 1,620
  • 16
  • 18