在MaterialCalendarView

时间:2018-11-18 23:05:15

标签: java android calendar android-calendar

我已经通过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)以便删除点,但是它不起作用。所以,我想念的是什么?任何帮助将不胜感激。

0 个答案:

没有答案