2012-09-18 41 views
0

我有一個日曆應用程序。我想循環通過當前的月份來獲取所有事件。唯一的問題是日期顯示所有事件的最後一個事件。循環顯示上次日期值

看來所有事件的日期值都被上一個事件的日期值替換。

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); 
      } 
     } 
    } 

回答

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)); 
     } 
    } 
}