如何在Android日期选择器对话框中禁用某些日期?

时间:2016-01-11 17:10:28

标签: android android-datepicker datepickerdialog

我使用的默认Android DatePickerDialog包含android.widget.DatePicker

有人知道如何禁用或使某些日期无法选择吗?

我知道DatePicker允许setMinDate()setMaxDate(),但它不允许在中间禁用特定日期。

e.g。在这张照片上想要禁用日期18,26等:

enter image description here

2 个答案:

答案 0 :(得分:2)

这不是内置行为 - 您必须使用自定义日期选择器。

答案 1 :(得分:1)

我使用自定义datepicker获得了一个方法。首先,我们需要将日期作为字符串,然后将其转换为日期对象,然后将日期转换为日历对象。最后使用setDisabledDays(calenderobj)。我们可以禁用它。     代码如下。

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