我需要一点帮助!

我已经按照this指南获得了一些结果。

并设置了适配器,初始化了recyclerview,但是我遇到了麻烦
在列表中显示正确的数据。

所以这就是我想要做的:

首先,我将从api提取的数据临时存储在列表中,还创建一个日期数组列表。当然,我要从该数组列表中删除重复的日期,因为有些项目按同一日期排序。

这是一些代码,以及我如何在各部分中按日期填充recyclerview并订购商品:

// dates - array list of dates(16 February, 20 February..)
// mEvents - temporarily list with size of 8 items
// originalList - list of events ordered by date

for (String date : dates) {
    originalList.clear();
    for (Event event2 : mEvents) {
        // Checking if item's date from temp. list is equal with
        // iterated date and adding to original list
        if (date.equals(event2.getDate())) {
            originalList.add(event2);
        }
    }

        // Attaching section to adapter with iterated date and array list related to that date
        EventSection eventSection
   = new EventSection(R.layout.lst_item_event_header, R.layout.lst_item_event_v2, date, originalList, getActivity());
                        mSectionedRecyclerViewAdapter.addSection(eventSection);
}


这里的问题是,我要为每个日期部分从原始列表中获取最后2个项目。我在这里想念的是什么?

编辑:

// I need to sort items by these dates into sections
Dates:: [2017-02-16, 2017-02-17, 2017-02-28, 2017-02-22, 2017-02-20]

Event date:: 2017-02-16
Event date:: 2017-02-16
Event date:: 2017-02-17
Event date:: 2017-02-17
Event date:: 2017-02-28
Event date:: 2017-02-22
Event date:: 2017-02-20
Event date:: 2017-02-20

最佳答案

好的,我终于在导师的图书馆例子的帮助下找到了解决方案。因此,如果其他人遇到像我这样的麻烦,这可能会帮助您:

for (String date : dates) {
    originalList = getEventsWithDate(date);

    if (originalList.size() > 0) {
       mSectionedRecyclerViewAdapter.addSection(new EventSection(date, originalList, getActivity()));
    }
}

private List<Event> getEventsWithDate(String date) {
    List<Event> events = new ArrayList<>();

    for (Event event : mEvents) {
        if (date.equals(event.getDate())) {
            events.add(event);
        }
    }

    return events;
}

08-18 18:16
查看更多