2014-08-28 3 views
1

У меня есть диалоговое окно выбора даты, как это:DatePickerDialog setMaxDate показать один месяц и один день дополнительный

     public Dialog onCreateDialog(Bundle savedInstanceState) { 
     final Calendar calendar = Calendar.getInstance(); 
     int yy = calendar.get(Calendar.YEAR); 
     int mm = calendar.get(Calendar.MONTH); 
     int dd = calendar.get(Calendar.DAY_OF_MONTH); 
     DatePickerDialog datePicker = new DatePickerDialog(getActivity(), this, yy, mm, dd); 
     datePicker.getDatePicker().setCalendarViewShown(false); 

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

     datePicker.setTitle("RENTRE TA DATE DE NAISSANCE."); 

     return datePicker; 
    } 

...

Мы можем увидеть мою проблему На изображении дата сегодня является 27 JUIL 2014 я хочу, чтобы этот выбор даты остановился на эту дату и не показывал 28 aout Спасибо за вашу помощь

+0

является в 'setMaxDate()' не работает вообще, или это остановить вас проходя мимо 28 вместо 27-й, как вы ожидаете? – Dreagen

+0

Сегодня 28 августа, а не 27 июля. В чем проблема? – laalto

+0

может быть, это может быть полезно http://stackoverflow.com/questions/16029361/setting-upper-and-lower-date-limits-to-date-picker-dialog – gienini

ответ

2

Добавьте 1 день и 1 месяц к вашему экземпляру календаря. И передать его setMaxDate()

// Set calendar to 1 day next from today 
    calendar.add(Calendar.DAY_OF_MONTH, 1); 
    // Set calendar to 1 month next 
    calendar.add(Calendar.MONTH, 1); 
    datePicker.getDatePicker().setMaxDate(calendar.getTimeInMillis()); 

Таким образом, ваш метод будет выглядеть

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    final Calendar calendar = Calendar.getInstance(); 
    int yy = calendar.get(Calendar.YEAR); 
    int mm = calendar.get(Calendar.MONTH); 
    int dd = calendar.get(Calendar.DAY_OF_MONTH); 
    DatePickerDialog datePicker = new DatePickerDialog(getActivity(), this, 
      yy, mm, dd); 
    datePicker.getDatePicker().setCalendarViewShown(false); 
    // Set calendar to 1 day next from today 
    calendar.add(Calendar.DAY_OF_MONTH, 1); 
    // Set calendar to 1 month next 
    calendar.add(Calendar.MONTH, 1); 
    datePicker.getDatePicker().setMaxDate(calendar.getTimeInMillis()); 

    datePicker.setTitle("RENTRE TA DATE DE NAISSANCE."); 

    return datePicker; 
} 
Смежные вопросы