Android用自带DatePickerDialog选择日期

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分别为当前选择的年,月,日,这样便获取到了你想要的日期
        }
    };

你可能感兴趣的:(Android用自带DatePickerDialog选择日期)