我有一个日历应用。我想循环浏览当前月份来获取所有活动。唯一的问题是日期显示所有事件的最后一个事件。
似乎所有事件的日期值都被最后一个事件的日期值替换。
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);
}
}
}
答案 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));
}
}
}