2014-11-30 2 views
0

, поэтому у меня есть странная проблема. Я пытаюсь создать DatePickerDialog, который изменяет внутреннюю переменную при изменении даты. Я сделал следующее, но это не называется.DatePickerDialog.OnDateSetListener onDateSet не называется

 calendar = (Calendar) getArguments().getSerializable(DATE_ARGUMENT); 
     year = calendar.get(Calendar.YEAR); 
     month = calendar.get(Calendar.MONTH); 
     day = calendar.get(Calendar.DAY_OF_MONTH); 

// Create a new instance of DatePickerDialog and return it 
     DatePickerDialog d = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { 
      @Override 
      public void onDateSet(DatePicker datePicker, int i, int i2, int i3) { 
       calendar.set(i, i2, i3); 
      } 
     },year, month, day); 

ответ

0

По-видимому, установка слушателя DatePickerDialog - это не то, что нужно делать.
Вы должны установить внутренний DatePicker слушателя, как следующее:

d.getDatePicker().init(year, month, day, new DatePicker.OnDateChangedListener() { 
      @Override 
      public void onDateChanged(DatePicker datePicker, int i, int i2, int i3) { 
       calendar.set(i, i2, i3); 
      } 
     }); 

Таким образом, всякий раз, когда пользователь обновляет дату внутри диалога, слушатель обратного вызова срабатывает и внутренние изменения переменных даты.

Смежные вопросы