【发布时间】:2015-09-03 15:11:31
【问题描述】:
尝试解决这个问题一整天,但无法解决问题。
我想要的是将日历视图的最小值和最大值设置为当前月份和年份以及所有日期。
因此用户无法滚动到上个月或下个月。
到目前为止我尝试的是:
calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH) + 1;
int currentDay = calendar.get(Calendar.DATE);
int minMonthCalendarView = calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + 1;
int maxMonthCalendarView = calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + 2;
technicianDateHint.setText(getResources().getString(R.string.Your) + " " + String.valueOf(currentDay) + "-" +
String.valueOf(currentMonth) + "-" + String.valueOf(currentYear));
try {
date = DDMMMYYYY.parse(item.getDueDate());
item.setDueDate(DDMMYYY.format(date));
} catch (ParseException e1) {
e1.printStackTrace();
}
userDate.setText(item.getDueDate());
technicianDate.setShowWeekNumber(false);
technicianDate.setMinDate(minMonthCalendarView);
technicianDate.setMaxDate(maxMonthCalendarView);
technicianDate.setUnfocusedMonthDateColor(Color.TRANSPARENT);
technicianDate.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView calendarView, int year, int month, int day) {
technicianDateHint.setText(day + "-" + month + "-" + year);
}
});
int minMonthCalendarView = calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + 1; int maxMonthCalendarView = calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + 2;
当使用 minDate 设置而不使用 maxDate 时,它可以正常工作。由于用户无法滚动到上个月,但可以滚动到下个月。
有什么方法可以将 setMinDate 和 setMaxDate 设置为当前月份?
【问题讨论】: