2016-07-07 8 views
0

Android DatePickerdialog, чтобы выбрать следующий 10 year date.Диалоговое окно выбора даты в Android, чтобы выбрать следующие 10 лет только

У меня есть диалоговое окно datepicker, в котором я хочу выбрать только future date (следующие 10 лет) и предотвратить выбор прошедшей даты. Ниже приведен мой код, который позволяет не выбирать прошедшую дату, но я хочу показать только следующую 10-летнюю дату.

try { 
    dateFormatter = new SimpleDateFormat("MM/yy", Locale.US); 
    edtMonth.setOnClickListener(this); 

    Calendar newCalendar = Calendar.getInstance(); 

    datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 

     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      Calendar newDate = Calendar.getInstance(); 
      newDate.set(year+2, monthOfYear, dayOfMonth); 

      edtMonth.setText(dateFormatter.format(newDate.getTime())); 
     } 

    },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 

    // it is used for prevent old date selection. 
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()+2); 

} catch (Exception e) { 
    e.printStackTrace(); 
} 

Заранее спасибо.

ответ

2

Для отображения только 10 лет с сегодняшнего дня вы должны установить ваш MinDate в System.currentTimeMillis() и установить MaxDate в CureentTimeMillis + Next 10 Year Millis и добавить это значение к вашим MaxDate, как показано ниже образом.

setMinDate Сегодня.

datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()); 

setMaxDate Сегодня.

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() + 10 year Millis); 
1

попробовать это

 Calendar cal = Calendar.getInstance(); 
    cal.setTime(new Date()); 
    cal.add(Calendar.YEAR, 10); 
    Date newDate = cal.getTime(); 
    datePicker.getDatePicker().setMinDate(System.currentTimeMillis()); 
    datePicker.getDatePicker().setMaxDate(newDate.getTime());