如何在1980
对话框中将initial
显示为DatePicker
年,我仍然将初始日期视为当前日期
请参阅下面的代码,让我知道我的代码在哪里进行更改
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DATE:
return new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
dateTime.set(year, monthOfYear, dayOfMonth);
editDate.setText(dateFormatter
.format(dateTime.getTime()));
}
}, dateTime.get(Calendar.YEAR),
dateTime.get(Calendar.MONTH),
dateTime.get(Calendar.DAY_OF_MONTH));
}
return null;
答案 0 :(得分:4)
这是因为DatePickerDialog构造函数的最后3个参数是最初在DatePicker中显示的日期。您将使用
将dateTime变量设置为当前日期private Calendar dateTime = Calendar.getInstance();
因此,您必须将dateTime变量设置为您希望在第一次运行时显示的正确日期。在OnCreate()方法中执行此操作
dateTime.set(1980, Calendar.JANUARY , 1);
现在你的DatePicker应该在第一次运行时显示正确的值,因为你在回调中设置了dateTime变量,如果用户再次打开对话框,它应该设置正确的先前值。