在校APP的考勤相关的界面。在下笔记用。

第一种:不能选择今日之后的日历

private void updateTeacherBirth() {
    //Dialog dialog = null;
    Calendar calendar = Calendar.getInstance();

    MyDatePickerDialog dialog;//重写datePickDialog方法,增加onstop方法,使之能够正常的取消。即 取消时不走onDateSet方法。

    dialog = new MyDatePickerDialog(this, new MyDatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker dp, int year, int month, int dayOfMonth) {
            month++;
            String sMonth = month + "";
            if (month < 10) {
                sMonth = "0" + sMonth;
            }
        }
    }, calendar.get(Calendar.YEAR), // 传入年份
            calendar.get(Calendar.MONTH), // 传入月份
            calendar.get(Calendar.DAY_OF_MONTH) // 传入天数
    );

    //点击取消按钮
    dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
        @Override
        public void onCancel(DialogInterface dialog) {

        }
    });

    DatePicker datePicker = dialog.getDatePicker();
    datePicker.setMaxDate(calendar.getTimeInMillis());
    dialog.setCanceledOnTouchOutside(true);
    dialog.show();
}

 

第二种:能弹出能选择今天之后的日历

/**
 * 辅助参数,开始时间的date 型,选择结束时间时用。
 */
private Date startDate;

private String startTime;

private void showStartDatePickerDialog(Activity activity, final TextView tv) {
    // Calendar 需要这样来得到
    Calendar calendar = Calendar.getInstance();

    // 直接创建一个DatePickerDialog对话框实例,并将它显示出来
    new DatePickerDialog(activity,
            // 绑定监听器(How the parent is notified that the date is set.)
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    // 此处得到选择的时间,可以进行你想要的操作
                    monthOfYear += 1;
                    startDate = new Date(year, monthOfYear, dayOfMonth);

                    //获取默认选中的日期的年月日星期的值,并赋值
                    Calendar calendar = Calendar.getInstance();//日历对象
                    calendar.setTime(Calendar.getInstance().getTime());//设置当前日期
                    String startTime = year + "-" + monthOfYear + "-" + dayOfMonth;

                    showStartTimeDialog(StringUtils.getString(R.string.kaishi_shijian));
                }
            }
            // 设置初始日期
            , calendar.get(Calendar.YEAR)
            , calendar.get(Calendar.MONTH)
            , calendar.get(Calendar.DAY_OF_MONTH)).show();
}
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐