日期时再显示更改控件一般我们使用构造方法public DatePickerDialog(@NonNull Context context, @Nullable OnDateSetListener listener, int year, int month, int dayOfMonth)可以
创建出一个DatePickerDialog对象。其中OnDateSetListener listener是用户日期设置完成后的回调监听器,该接口的void onDateSet(DatePicker view, int year, int month, intdayOfMonth);
方法内可以获取到用户设置的日期信息,在该方法内我们可以对用户输入的日期信息做进一步的操作。
参数year、month、dayOfMonth用来初始化DatePickerDialog默认显示的日期。不过要注意参数month与Calendar类的month类似,都是从0开始表示,即1-12月依次对应0-11。通常
我们可以用Calendar.getInstance();获取到一个表示当前系统日期的Calendar对象,用该对象来初始化DatePickerDialog。
在一般情况下,我们希望只有当用户确定其输入的日期信息后,才调用onDateSet()方法,但在这里无论是否确定输入,都会回调onDateSet()方法,这显然不是我们想要的。为什么
会出现这样的情况呢?
首先,我们知道当Dialog被关闭时,如按下“取消”、“确定”、返回键或Dialog以外的部分,都会调用dismiss()方法,进一步调用onStop()方法。而从Android 4.1到Android4.4(API 16-19),DatePickerDialog的源码都重写了onStop()方法。