所以我有一个奇怪的问题。 我正在尝试创建一个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);
答案 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);
}
});
这样,只要用户更新对话框中的日期,就会触发侦听器回调并且内部变量日期会更改。