【发布时间】:2017-09-23 21:12:39
【问题描述】:
您好,我正在使用 DatePickerDialog 并按预期工作。
下面是我的代码。
Calendar newCalendar = Calendar.getInstance();
dobDatePickerDialog = new DatePickerDialog(this, new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
if (view.isShown()) {
//view.setMaxDate(new Date().getTime());
Calendar dob = Calendar.getInstance();
dob.set(year, monthOfYear, dayOfMonth);
Calendar now = Calendar.getInstance();
int year1 = now.get(Calendar.YEAR);
int year2 = dob.get(Calendar.YEAR);
int age = year1 - year2;
if (age <= 18) {
Toast.makeText(EditProfileActivity.this, MyUtils.getStringFromResource(EditProfileActivity.this, R.string.validate_date_18_above), Toast.LENGTH_SHORT).show();
dobFld.setText("");
} else {
isDataChanged = true;
dobFld.setText(dateFormatter.format(dob.getTime()));
}
}
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
dobDatePickerDialog.getDatePicker().setMaxDate(new Date().getTime());
dobDatePickerDialog.updateDate(birthYear,birthMonth-1,birthDay);
}
它显示我选择的日期。但问题是,如果我单击年份选项(在对话框顶部)来更改年份,然后取消或按 OK 按钮而不更改年份值。然后对话框关闭。但是下次如果我打开选择器,它会在年视图中打开,而不是在初始日历视图中..
下面是我启动对话框的代码。
dobFld = (EditText) findViewById(R.id.dobFld);
dobFld.setInputType(InputType.TYPE_NULL);
dobFld.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dobDatePickerDialog.show();
}
});
请给我一些线索如何初始化选择器,以便它按预期打开日历视图。
【问题讨论】:
标签: android android-datepicker