Android自定义日期选择器不';t调用重写的方法
我有一个自定义DatePickerDialog,它使用两个Joda日期时间对象来设置最小/最大日期。我希望覆盖选择超出此范围的日期的行为,以便您无法执行此操作。由于某些原因,未调用重写的方法onDateChanged和updateDate,即日期选择器文档Android自定义日期选择器不';t调用重写的方法,android,datepicker,android-dialog,android-datepicker,android-timepicker,Android,Datepicker,Android Dialog,Android Datepicker,Android Timepicker,我有一个自定义DatePickerDialog,它使用两个Joda日期时间对象来设置最小/最大日期。我希望覆盖选择超出此范围的日期的行为,以便您无法执行此操作。由于某些原因,未调用重写的方法onDateChanged和updateDate,即日期选择器文档 public class CustomDatePickerDialog extends DatePickerDialog { DateTime maxDateTime; DateTime minDateTime;
public class CustomDatePickerDialog extends DatePickerDialog {
DateTime maxDateTime;
DateTime minDateTime;
DateTime selectedDateTime;
public CustomDatePickerDialog(Context context, OnDateSetListener callBack, Calendar c, DateTime minDateTime, DateTime maxDateTime) {
super(context, callBack, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
this.maxDateTime = maxDateTime;
this.minDateTime = minDateTime;
getDatePicker().setMinDate(minDateTime.getMillis());
getDatePicker().setMaxDate(maxDateTime.getMillis());
}
@Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
Log.d(LogUtil.RANDOM_TAG, "date changed");
selectedDateTime = new DateTime(year, month + 1, day, 0, 0);
if (selectedDateTime.getMillis() > maxDateTime.getMillis()) {
Log.d(LogUtil.RANDOM_TAG, "selected date time is greater than");
// super.onDateChanged(view, year, month, day);
} else {
super.onDateChanged(view, year, month, day);
}
}
@Override
public void onClick(DialogInterface dialog, int which) {
super.onClick(dialog, which);
}
@Override
public DatePicker getDatePicker() {
return super.getDatePicker();
}
@Override
public void updateDate(int year, int monthOfYear, int dayOfMonth) {
Log.d(LogUtil.RANDOM_TAG, "update date");
super.updateDate(year, monthOfYear, dayOfMonth);
}
@Override
public Bundle onSaveInstanceState() {
return super.onSaveInstanceState();
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
}