Как установить минимальную и максимальную дату для DatePickerDialog.OnDateSetListener - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь установить минимальную дату (-12 лет) и максимальную дату (+90 лет) для моей регистрации пользователя с этим DatePickerDialog.

Я смотрел на некоторыекоды здесь, но не нашел, как это сделать с моим кодом.Просто несколько других примеров, но с использованием разных способов получить дату.

private EditText etBirthdate;    
Calendar myCalendar;
DatePickerDialog.OnDateSetListener date;

myCalendar = Calendar.getInstance();
myCalendar.set(Calendar.YEAR, (myCalendar.get(Calendar.YEAR) - 12));

updateDatePicker();

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);
       updateDatePicker();
   }

};



etBirthdate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        new DatePickerDialog(getActivity(), date, myCalendar
          .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
           myCalendar.get(Calendar.DAY_OF_MONTH)).show();
         }
});

private void updateDatePicker() {
        String country = Locale.getDefault().getCountry();
        String myFormat = "dd/MM/yy";

        if (country.equalsIgnoreCase("US")) {
            myFormat = "MM/dd/yy";
        }

        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

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

1 Ответ

0 голосов
/ 26 марта 2019

Используйте функции setMaxDate и setMinDate DatePicker.

    private int pYear;
    private int pMonth;
    private int pDay;
    private DatePickerDialog.OnDateSetListener dateSetListener;

    final Calendar c = Calendar.getInstance();
    pYear = c.get(Calendar.YEAR);
    pMonth = c.get(Calendar.MONTH);
    pDay = c.get(Calendar.DAY_OF_MONTH);
    dateSetListener = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {

        }

    };

    DatePickerDialog dialog = new DatePickerDialog(this, dateSetListener, pYear, pMonth, pDay);

    Calendar maxValueCalendar = Calendar.getInstance();
    maxValueCalendar.set(Calendar.YEAR , pYear + 90);
    dialog.getDatePicker().setMaxDate(maxValueCalendar.getTimeInMillis());

    Calendar minValueCalendar = Calendar.getInstance();
    minValueCalendar.set(Calendar.YEAR , pYear - 12);
    dialog.getDatePicker().setMinDate(minValueCalendar.getTimeInMillis());
    dialog.show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...