prolificinteractive / material-calendarview

A Material design back port of Android's CalendarView
https://prolificinteractive.github.io/material-calendarview/
MIT License
5.91k stars 1.32k forks source link

how to use decorators in java fragment? #1051

Closed 0jinny closed 4 years ago

0jinny commented 4 years ago

I was about to use decorators in java fragment, but it gives an error as below. It seems the context parameter gives null to a decorator. (API 28: Oreo)

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.prolificinteractive.materialcalendarview.MaterialCalendarView.addDecorators(com.prolificinteractive.materialcalendarview.DayViewDecorator[])' on a null object reference

[StatisticsFragment.java - where I use decorator] ` public class StatisticsFragment extends Fragment { private MaterialCalendarView cal;

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);

    View view = inflater.inflate(R.layout.fragment_statistics, container, false);

    cal.addDecorators(
            new CalendarSelectorDecorator(getActivity())
    );

    return view;
}

} `

[CalendarSelectorDecorator.java] ` public class CalendarSelectorDecorator implements DayViewDecorator {

private final Drawable drawable;

public CalendarSelectorDecorator(Activity context){
    drawable = context.getResources().getDrawable(R.drawable.calendar_selector, context.getTheme());
}

@Override
public boolean shouldDecorate(CalendarDay day) {
    return false;
}

@Override
public void decorate(DayViewFacade view) {
    view.setSelectionDrawable(drawable);
}

}`

Thanks in advance.