Android 动态创建的日历禁用未来日期
Android Dynamically created Calendar disable future Dates
如何在动态创建的日历中禁用未来日期?我使用的是日历 而不是日期选择器 。这是我的代码
这里是我创建日历的第一个代码块。
在第二块中,我已设置为在点击事件时打开日历
final Calendar myCalendar = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener 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);
String myFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
editDate.setText(sdf.format(myCalendar.getTime()));
}
};
editDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(SecondActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
您可以使用 datepicker 的 setMaxDate()
方法。我在这里提到,如何设置从现在起 18 年之前的最大日期。
DatePickerDialog dialog = new DatePickerDialog(SecondActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH));
Calendar calendar = Calendar.getInstance();
calendar.set(mYear - 18, mMonth, mDay);
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());
dialog.show();
如何在动态创建的日历中禁用未来日期?我使用的是日历 而不是日期选择器 。这是我的代码 这里是我创建日历的第一个代码块。 在第二块中,我已设置为在点击事件时打开日历
final Calendar myCalendar = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener 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);
String myFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
editDate.setText(sdf.format(myCalendar.getTime()));
}
};
editDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(SecondActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
您可以使用 datepicker 的 setMaxDate()
方法。我在这里提到,如何设置从现在起 18 年之前的最大日期。
DatePickerDialog dialog = new DatePickerDialog(SecondActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH));
Calendar calendar = Calendar.getInstance();
calendar.set(mYear - 18, mMonth, mDay);
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());
dialog.show();