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

1 に答える 1

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));
        } 
    }
}
于 2012-09-18T15:03:17.900 に答える