如何在日期选择器对话框中禁用以前的日期

时间:2016-08-26 07:46:21

标签: java android xml

我是一名学生,我正在开发一个Android预订应用程序。在这些应用程序中,我有一个选择日期的按钮,当我点击按钮时会出现一个用于选择日期的对话框,但我想< strong>停用所有以前的日期,只想显示一个月的当前日期和更多3个日期。请帮助我如何执行此操作谢谢

pPickDate.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            showDialog(DATE_DIALOG_ID);
        }
    });
    final Calendar cal = Calendar.getInstance();
    pYear = cal.get(Calendar.YEAR);
    pMonth = cal.get(Calendar.MONTH);
    pDay = cal.get(Calendar.DAY_OF_MONTH);

    /** Display the current date in the TextView */
    updateDisplay();

}
protected Dialog onCreateDialog(int id) {
    switch (id) {
        case DATE_DIALOG_ID:
            return new DatePickerDialog(this,
                    pDateSetListener,
                    pYear, pMonth, pDay);
    }
    return null;
}

private void updateDisplay() {
    pDisplayDate.setText(
            new StringBuilder()
                    // Month is 0 based so add 1
                    .append(pMonth + 1).append("/")
                    .append(pDay).append("/")
                    .append(pYear).append(" "));

}

2 个答案:

答案 0 :(得分:0)

您可以为DatePicker设置最小和最大日期,执行以下操作:

yourDatePickerDialog.getDatePicker().setMinDate(youMinDate);

https://developer.android.com/reference/android/widget/DatePicker.html#setMinDate(long)

答案 1 :(得分:0)

尝试这个

DatePickerDialog datePicker;
 private Calendar calendar;
private int year, month, day;
      // FETCH YEAR,MONTH,DAY FROM CALENDAR
   calendar = Calendar.getInstance();
    year = calendar.get(Calendar.YEAR);
    month = calendar.get(Calendar.MONTH);
    day = calendar.get(Calendar.DAY_OF_MONTH);

datePicker = new DatePickerDialog(this, YOUR_LISTENER, year, month, day);
// this line is used for disable previous date but u can select the date
datePicker.getDatePicker().setMinDate(System.currentTimeMillis());
// this line is used to prevent date selection 
 datePicker.getDatePicker().setCalendarViewShown(false);