2014-11-30 3 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); 
      } 
     }); 

사용자가 대화 내부의 날짜를 업데이트 할 때마다이 방법은 리스너 콜백 해고와 내부 변수 날짜가 변경됩니다.

관련 문제