Android Динамически созданный календарь отключить будущие даты - PullRequest
0 голосов
/ 05 ноября 2018

Как отключить будущие даты в динамически создаваемом календаре? Я использую Календарь , а не Выбор даты . Вот мой код здесь 1-й блок кода я создал календарь. во 2-м блоке я настроил открытие календаря по событию клика

final Calendar myCalendar = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener date = new 
DatePickerDialog.OnDateSetListener() {
     @Override
     public void onDateSet(DatePicker view, int year, int monthOfYear, 
     int dayOfMonth)
      {
      // TODO Auto-generated method stub
      myCalendar.set(Calendar.YEAR, year);
      myCalendar.set(Calendar.MONTH, monthOfYear);
      myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);

      String myFormat = "yyyy-MM-dd";  
      SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

      editDate.setText(sdf.format(myCalendar.getTime()));
      }

};

editDate.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
     // TODO Auto-generated method stub
     new DatePickerDialog(SecondActivity.this, date, myCalendar 
     .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
     myCalendar.get(Calendar.DAY_OF_MONTH)).show();
     }
});

1 Ответ

0 голосов
/ 05 ноября 2018

Для этого вы можете использовать setMaxDate() метод datepicker . Я упоминал здесь, как установить максимальную дату до 18 лет.

DatePickerDialog dialog = new DatePickerDialog(SecondActivity.this, date, myCalendar 
 .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
 myCalendar.get(Calendar.DAY_OF_MONTH));

Calendar calendar = Calendar.getInstance();
calendar.set(mYear - 18, mMonth, mDay);
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());
dialog.show();
...