我正在尝试使用此DatePickerDialog设置用户注册的最小日期(从现在开始-12年)和最大日期(从现在开始+90年)。
我在这里查看了一些代码,但是没有找到如何处理我的代码的方法。只是其他一些示例,但使用不同的方式来获取日期。
private EditText etBirthdate;
Calendar myCalendar;
DatePickerDialog.OnDateSetListener date;
myCalendar = Calendar.getInstance();
myCalendar.set(Calendar.YEAR, (myCalendar.get(Calendar.YEAR) - 12));
updateDatePicker();
date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateDatePicker();
}
};
etBirthdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new DatePickerDialog(getActivity(), date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
private void updateDatePicker() {
String country = Locale.getDefault().getCountry();
String myFormat = "dd/MM/yy";
if (country.equalsIgnoreCase("US")) {
myFormat = "MM/dd/yy";
}
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
etBirthdate.setText(sdf.format(myCalendar.getTime()));
}
答案 0 :(得分:0)
使用DatePicker的setMaxDate
和setMinDate
函数。
private int pYear;
private int pMonth;
private int pDay;
private DatePickerDialog.OnDateSetListener dateSetListener;
final Calendar c = Calendar.getInstance();
pYear = c.get(Calendar.YEAR);
pMonth = c.get(Calendar.MONTH);
pDay = c.get(Calendar.DAY_OF_MONTH);
dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
}
};
DatePickerDialog dialog = new DatePickerDialog(this, dateSetListener, pYear, pMonth, pDay);
Calendar maxValueCalendar = Calendar.getInstance();
maxValueCalendar.set(Calendar.YEAR , pYear + 90);
dialog.getDatePicker().setMaxDate(maxValueCalendar.getTimeInMillis());
Calendar minValueCalendar = Calendar.getInstance();
minValueCalendar.set(Calendar.YEAR , pYear - 12);
dialog.getDatePicker().setMinDate(minValueCalendar.getTimeInMillis());
dialog.show();