当我使用日期选择器对话框手动输入时,设置初始默认值后返回错误的日期。选择日期之后,将初始日期设置为选择之前的日期。但这只是错误的情况:
步骤1:手动输入日期= 1,月份= 9,年份= 2018。
步骤2:显示日期选择器,显示1/9/2018,可以。
步骤3:选择每月的最后一天。 (2018年9月30日)。它将返回31/8/2018。
注意:仅在手动输入并设置月份的第一和最后一个时才发生。
我使用了datePicker.clearFocus();
,但似乎也无法使用!
date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// Do something with year, monthOfYear and dayOfMonth
mdate = dayOfMonth;
mmonth = monthOfYear;
myear = year;
}
};
mDatePickerDialog = new DatePickerDialog(MyAndroidAppActivity.this, date, myear, mmonth, mdate);
mDatePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Set", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
datePicker = mDatePickerDialog.getDatePicker();
// The following clear focus did the trick of saving the date while the date is put manually by the edit text.
datePicker.clearFocus();
date.onDateSet(datePicker, datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth());
}
});
}
});
mDatePickerDialog.show();