未调用DatePickerDialog.OnDateSetListener onDateSet

时间:2014-11-30 11:42:37

标签: java android android-fragments dialog

所以我有一个奇怪的问题。 我正在尝试创建一个DatePickerDialog,在日期更改时更改内部变量。 我做了以下但是没有被调用。

     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);

1 个答案:

答案 0 :(得分: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);
            }
        }); 

这样,只要用户更新对话框中的日期,就会触发侦听器回调并且内部变量日期会更改。