首页 > 解决方案 > DatePickerDialog 显示前一年的一天

问题描述

DatePickerDialog的默认显示当前日期。每当在那个时间过去一年时,它DAY 都是自动选择的。有小伙伴遇到这个问题吗?任何帮助,将不胜感激。

public void datePicker(Context ctx,final CommonEditTextRegular editText) {

        Calendar newCalendar = Calendar.getInstance();
        DatePickerDialog fromDatePickerDialog = new DatePickerDialog(ctx, new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                Calendar newDate = Calendar.getInstance();
                newDate.set(year, monthOfYear, dayOfMonth);
                String myFormat = "dd-MM-yyyy";
                SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
                editText.setText(sdf.format(newDate.getTime()));
            }

        },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));

        fromDatePickerDialog.show();
        fromDatePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
    }

今天是 2019 年 5 月 9 日。当检查 2018 年时。2018 年 5 月 9 日自动选择。

标签: androidandroid-datepicker

解决方案


是的,这就是它的工作原理。这不是一个错误。日历是基于年份的日历。

当您更改年份时,会生成一个新的整年,因此会选择一个日期。默认情况下,与前一天/月相同。


推荐阅读