Android DatePickerDialog使用指南

2019-08-14 10:13:25 浏览数 (1)

大家在应用中大部分都会使用到日历 那么这篇文章就来讲一下如何使用系统自带的日历DatePickerDialog 首先调用Calendar类获取年月日

代码语言:javascript复制
 Calendar ca = Calendar.getInstance();
      int  mYear = ca.get(Calendar.YEAR);
      int  mMonth = ca.get(Calendar.MONTH);
      int  mDay = ca.get(Calendar.DAY_OF_MONTH);

然后将获取到的年月日放进new出来的DatePickerDialog中

代码语言:javascript复制
        DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(),
                new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                        mYear = year;
                        mMonth = month;
                        mDay = dayOfMonth;
                        final String data =  (month 1)   "月-"   dayOfMonth   "日 ";
                         }
                },
                mYear, mMonth, mDay);
        datePickerDialog.show();

这样我们就可以进行日期的选择了 但是如果我们想只进行年月的选择不进行日选择怎么办呢 代码如下

代码语言:javascript复制
 //只显示年月,隐藏掉日
        DatePicker dp = findDatePicker((ViewGroup) datePickerDialog.getWindow().getDecorView());
        if (dp != null) {
            ((ViewGroup)((ViewGroup)dp.getChildAt(2)).getChildAt(2))
                    .getChildAt(2).setVisibility(View.GONE);
            //如果想隐藏掉年,将getChildAt(2)改为getChildAt(0)
        }

那么还有一个疑问如果我们想改变系统DatePickerDialog的风格怎么办呢 其实很简单 只需要在style.xml中自己定义即可 然后把定义好的样式放到DatePickerDialog构造中的第一个参数后即可 代码如下

代码语言:javascript复制
 DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(), R.style.MyDatePickerDialogTheme,
                        new DatePickerDialog.OnDateSetListener() {
                            @Override
                            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                                mYear = year;
                                mMonth = month;
                                mDay = dayOfMonth;
                                final String data =  (month 1)   "月-"   dayOfMonth   "日 ";
                            }
                        },
                        mYear, mMonth, mDay);
                datePickerDialog.show();

好了到这里DatePickerDialog的定义就到此结束了

0 人点赞