У меня эта проблема, события появляются 3 раза в одной строке, и когда я использую этот метод, не появляется

private List<WeekViewEvent> getEventsForMonth(int year, int month) {
        List<WeekViewEvent> tempList = new ArrayList<WeekViewEvent>();
        for (WeekViewEvent weekViewEvent : events) {
           if (weekViewEvent.getStartTime().get(Calendar.MONTH) == month && weekViewEvent.getStartTime().get(Calendar.YEAR) ==
                    year) {
                tempList.add(weekViewEvent);
           }
        }

        return tempList;
    }

Я использую это здесь

 MonthLoader.MonthChangeListener mMonthChangeListener = new MonthLoader.MonthChangeListener() {
        @Override
        public List<? extends WeekViewEvent> onMonthChange(int newYear, int newMonth) {

        return getEventsForMonth(newYear,newMonth);
            //return events; (if I use this the events appear 3 time)
        }
    };

Я знаю, что "onMonthChange" вызывается 3 раза, и я пытался очистить список tempList, прежде чем использовать его, но это все та же проблема. Я нашел это решение, но оно не работает

NB: метод getEventsForMonth работал до вчерашнего дня, и я ничего в нем не менял

0
Amine Choukri 31 Дек 2017 в 16:05

2 ответа

Лучший ответ

Что ж, я решил проблему с помощью newMonth-1 в onMonthChange
потому что после отображения значения месяца из календаря я обнаружил, что, например, январь имеет значение 0 и +1 для каждого следующего месяца но newMonth в onChangeMonth дает реальное значение месяца, например, январь = 1

вот новый onChangeMonth

public List<? extends WeekViewEvent> onMonthChange(int newYear, int newMonth) {
            int month = newMonth-1;
        return getEventsForMonth(newYear,month);// I tried to use newMonth-1 directly here but it dosen't work i don't know why but it doesn't matter
        }
0
Amine Choukri 31 Дек 2017 в 14:53

Проблема в том, что эта функция запускается 3 раза, поэтому вам нужно указать дату сопоставления, когда она возвращает событие только для этого конкретного месяца.

0
Jack Huang 4 Дек 2019 в 13:01