Я реализовал простое приложение календаря через библиотеку material-calendarview , которая должна позволять добавлять / удалять события для выбранных дат. Событие add работает нормально, в котором используется простой декоратор (т.е. DotSpan). Но я не могу понять, как использовать декоратор, чтобы удалить добавленное событие на выбранную дату. Вот что у меня есть для удаления декоратора:
public class RemoveDecorator implements DayViewDecorator {
private final HashSet<CalendarDay> dates;
public RemoveDecorator(Collection<CalendarDay> dates) {
this.dates = new HashSet<>(dates);
}
@Override
public boolean shouldDecorate(CalendarDay day) {
return dates.contains(day); // false, i.e. shouldn't be decorated
}
@Override
public void decorate(DayViewFacade view) {
// TODO:
}
}
, который используется в методе удаления следующим образом:
private MaterialCalendarView widget;
private List<CalendarDay> calendarDays = new ArrayList<CalendarDay>();
private void removeEvent(CalendarDay day) {
calendarDays.remove(day);
widget.removeDecorator(new RemoveDecorator(calendarDays));
widget.invalidateDecorators();
}
Я пытался использовать setDaysDisabled(true)
для метода decorate, чтобы удалить точку, но он не работает. Итак, что мне не хватает? Любая помощь будет оценена.