Skip to content Skip to sidebar Skip to footer

How To Disable Certain Dates In The Android Date Picker Dialog?

I am using default Android DatePickerDialog which contains android.widget.DatePicker. Does anybody know how to disable or make certain dates unselectable? I know DatePicker allows

Solution 1:

That is not a built in behavior - you would have to use a custom date picker.


Solution 2:

I got a method by using custom datepicker. First we need to take the date as a string and then convert it into date object and then the date is converted to calendar object. At last by using setDisabledDays(calenderobj). We can disable it. The code is as follows.

 SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
                String a = "26-07-2017";
                java.util.Date date = null;
                try {
                    date = sdf.parse(a);
                    MainActivity obj = new MainActivity();
                    calendar = obj.dateToCalendar(date);
                    System.out.println(calendar.getTime());
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                List<Calendar> dates = new ArrayList<>();
                dates.add(calendar);
                Calendar[] disabledDays1 = dates.toArray(new Calendar[dates.size()]);
                dpd.setDisabledDays(disabledDays1);
                }


    private Calendar dateToCalendar(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar;
    }

Post a Comment for "How To Disable Certain Dates In The Android Date Picker Dialog?"