Android: средство выбора даты не должно принимать текущую дату и будущие даты - PullRequest
0 голосов
/ 23 августа 2011

Как запретить сборщикам дат принимать текущие и будущие даты в Android?

1 Ответ

3 голосов
/ 23 августа 2011
  1. Начиная с уровня API 11 для этого есть метод:

    DatePicker.setMaxDate(long maxDate)
    
  2. Если он должен работать в предыдущих версиях, используйте этот метод:

    public void init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
    

Вы можете передать свой собственный OnDateChangedListener, который «сбрасывает» недопустимые даты на самую новую действительную:

DatePicker picker = ...
int year = ...
int monthOfYear = ...
int dayOfMonth = ...
picker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {

    @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        // check if current date is OK
        boolean dateOk = ...
        if (!dateOk) {
            // correct the date, but be sure the corrected date is OK
            // => otherwise you might get endless recursion
            year = ...
            monthOfYear = ...
            dayOfMonth = ...
            // update the date widget with the corrected date values
            view.updateDate(year, monthOfYear, dayOfMonth);
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...