DatePickerDialog
这是安卓自带的日期选择对话框,有多种构造方法,根据传入参数不同选择不同的构造方法,通过查看源码可以看到其中的私有构造方法
private DatePickerDialog(@NonNull Context context, @StyleRes int themeResId,
@Nullable OnDateSetListener listener, @Nullable Calendar calendar, int year,
int monthOfYear, int dayOfMonth) {
super(context, resolveDialogTheme(context, themeResId));
final Context themeContext = getContext();
final LayoutInflater inflater = LayoutInflater.from(themeContext);
final View view = inflater.inflate(R.layout.date_picker_dialog, null);
setView(view);
setButton(BUTTON_POSITIVE, themeContext.getString(R.string.ok), this);
setButton(BUTTON_NEGATIVE, themeContext.getString(R.string.cancel), this);
setButtonPanelLayoutHint(LAYOUT_HINT_SIDE);
if (calendar != null) {
year = calendar.get(Calendar.YEAR);
monthOfYear = calendar.get(Calendar.MONTH);
dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
}
mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
mDatePicker.init(year, monthOfYear, dayOfMonth, this);
mDatePicker.setValidationCallback(mValidationCallback);
mDateSetListener = listener;
}
看到参数很好理解,第一个为context,第二个为主体风格id,第三个为日期选择的监听对象,第四个为日期Calendar对象,剩下三个参数分别为年月日, 传入对应的日期,点开的对话框便会默认跳到当前日期。
简单使用
现在来简单使用下安卓自带的日期选择对话框,直接new一个然后传入参数,执行show()方法,就会弹出该对话框了。
new DatePickerDialog(this,mdateListener,year,month,day).show();
然后需要重写日期选择监听,即你选择了某一日期后要做的事情
private DatePickerDialog.OnDateSetListener mdateListener=new DatePickerDialog.OnDateSetListener(){
//重写onDateSet方法
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//dothings
//year,monthOfYear,dayOfMonth分别为当前选择的年,月,日,这样便获取到了你想要的日期
}
};