MaterialCalendarView:如何在装饰方法上获取 CalendarDay 值?
MaterialCalendarView: How to get CalendarDay value on decorate method?
我在我的应用程序中使用 MaterialCalendarView (https://github.com/prolificinteractive/material-calendarview),我的 objective 创建价格视图(如图所示)。我有一张包含选定日期及其价格的地图。
请帮助我了解如何在装饰方法中获取 CalendarDay 值,以便我可以从地图中获取价格值。
public class DaysDecorator implements DayViewDecorator {
private final Context context;
Map<CalendarDay, String> priceMap;
public DaysDecorator(Context context, Map<CalendarDay, String> priceMap){
this.context = context;
this.priceMap = priceMap;
}
@Override
public boolean shouldDecorate(CalendarDay day) {
return priceMap.containsKey(day);
}
@Override
public void decorate(DayViewFacade view) {
//How to get CalendarDay here
int price = priceMap.get();
view.addSpan(new PriceSpan(35, Color.LTGRAY, 120000));
}
}
恐怕您误解了 DayViewDecorator 背后的原理之一。
如果我没理解错的话,您要做的是为每一天的 PriceSpan(即日期下方显示的小 text/value)设置一个特定值。这无法通过单个 DayViewDecorator
来实现。 DayViewDecorator
对适用日期集中的所有日期(在您的情况下 priceMap
)应用一个特定的 style/drawing/whatever(通过 decorate()
方法定义)。
换句话说,在 decorate()
中发生的事情发生在所有那些导致 true
之前调用 shouldDecorate()
的日子里。
恐怕您将不得不为地图中的每个唯一值使用特定的装饰器。
我在我的应用程序中使用 MaterialCalendarView (https://github.com/prolificinteractive/material-calendarview),我的 objective 创建价格视图(如图所示)。我有一张包含选定日期及其价格的地图。
请帮助我了解如何在装饰方法中获取 CalendarDay 值,以便我可以从地图中获取价格值。
public class DaysDecorator implements DayViewDecorator {
private final Context context;
Map<CalendarDay, String> priceMap;
public DaysDecorator(Context context, Map<CalendarDay, String> priceMap){
this.context = context;
this.priceMap = priceMap;
}
@Override
public boolean shouldDecorate(CalendarDay day) {
return priceMap.containsKey(day);
}
@Override
public void decorate(DayViewFacade view) {
//How to get CalendarDay here
int price = priceMap.get();
view.addSpan(new PriceSpan(35, Color.LTGRAY, 120000));
}
}
恐怕您误解了 DayViewDecorator 背后的原理之一。
如果我没理解错的话,您要做的是为每一天的 PriceSpan(即日期下方显示的小 text/value)设置一个特定值。这无法通过单个 DayViewDecorator
来实现。 DayViewDecorator
对适用日期集中的所有日期(在您的情况下 priceMap
)应用一个特定的 style/drawing/whatever(通过 decorate()
方法定义)。
换句话说,在 decorate()
中发生的事情发生在所有那些导致 true
之前调用 shouldDecorate()
的日子里。
恐怕您将不得不为地图中的每个唯一值使用特定的装饰器。