MaxiumDate을 오늘 날짜로 설정하면 오늘날짜 이후는 모두 disabled 됩니다. 그리고 OnDayClickListener를 설정해서 눌린 날짜를 비교하시면 됩니다.
alendarView.setMaximumDate(Calendar.getInstance());
calendarView.setOnDayClickListener(new OnDayClickListener {
@Override
public void onDayClick(EventDay eventDay) {
checkIfAfterTodaySelected(eventDay);
}
});
private void checkIfAfterTodaySelected(EventDay eventDay) {
Calendar today = Calendar.getInstance();
boolean isAfterToday = CalendarUtils.isDateAfter(today, eventDay.getCalendar());
if (!isAfterToday) return;
Toast.makeText(this, "메세지", Toast.LENGTH_SHORT).show();
}
public class CalendarUtils {
public static boolean isDateBefore(Calendar firstCalendar, Calendar secondCalendar) {
if (firstCalendar == null || secondCalendar == null) return false;
setMidnight(firstCalendar);
setMidnight(secondCalendar);
return secondCalendar.before(firstCalendar);
}
public static boolean isDateAfter(Calendar firstCalendar, Calendar secondCalendar) {
return isDateBefore(secondCalendar, firstCalendar);
}
public static void setMidnight(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
}