我只想显示上个月的日期。而且到今天的日期而不是未来的日期。
fromDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Calendar newCalendar = Calendar.getInstance();
datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
newCalendar.set(year, monthOfYear, dayOfMonth);
datePickerDialog.getDatePicker().setMaxDate(newCalendar.getTimeInMillis() + 1000);
datePickerDialog.getDatePicker().setMinDate(newCalendar.getTimeInMillis() - 1000);
fromDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
}
});
试试这个,
fromDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Calendar newCalendar = Calendar.getInstance();
datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
newCalendar.set(year, monthOfYear, dayOfMonth);
/*Set max date*/
datePickerDialog.getDatePicker().getDatePicker().setMaxDate(new Date().getTime());
// Subtract 1 month from Calendar updated date
c.add(Calendar.MONTH, -1);
// Set the Calendar new date as minimum date of date picker
datePickerDialog.getDatePicker() .getDatePicker().setMinDate(newCalendar.getTimeInMillis());
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
}
});
您可以使用 DatePicker 的 maxDate 和 minDate 属性,也可以使用 Java Code 完成相同的操作。您可以参考链接以获取更多信息