循环显示上次日期值

时间:2012-09-18 14:39:34

标签: java android date loops calendar

我有一个日历应用。我想循环浏览当前月份来获取所有活动。唯一的问题是日期显示所有事件的最后一个事件。

似乎所有事件的日期值都被最后一个事件的日期值替换。

   CalendarEvents events = new CalendarEvents();
   final ArrayList<Event> e = new ArrayList<Event>();


    for(int i = 0; i < _calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++){
        if(isHoliday(i, month, year, date_value))
        {
            String date = i + "-" + month + "-" + year;

            e.addAll(events.eventDetails(month, day));
            summary_data = new Summary[e.size()];

            for (int j = 0; j < e.size(); j++)
            {

               Event event = e.get(j);
               summary_data[j] = new Summary(date, event.eventdetails);
            } 
        }
    }

1 个答案:

答案 0 :(得分:2)

是的,鉴于该计划的逻辑,这是预期的。

你循环了几天。对于每一天,您将当天的事件添加到事件列表(名称错误的e列表)中。并且对于每一天,您循环遍历此列表中的每个事件(因此包含从月初到当天的所有事件),并创建一个Summary个实例的数组,每个摘要包含日期当天的活动以及活动详情(无论是过去的活动还是当天的活动)。

事件列表似乎没用。我只想使用摘要列表:

final List<Summary> summaries = new ArrayList<Summary>();

// loop through the days
for (int i = 0; i < calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
    if (isHoliday(i, month, year, date_value)) {
        String date = i + "-" + month + "-" + year;
        // loop through the events of the day
        for (Event event : events.eventDetails(month, day)) {
            // add a summary for the current day and the current event of the day
            summaries.add(new Summary(date, event.eventdetails));
        } 
    }
}