我已经通过material-calendarview库实现了简单的日历应用程序,该库应允许添加/删除所选日期的事件。使用简单的decorator(即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)
以便删除点,但是它不起作用。所以,我想念的是什么?任何帮助将不胜感激。