将值添加到recyclerView

时间:2016-03-09 06:49:56

标签: java android

我按照此question's answer在我的recyclerView

中添加了部分

用于添加我们必须提供的部分的索引,如下所示:

//Sections
sections.add(new SimpleSectionedRecyclerViewAdapter.Section(0,"Section 1"));
sections.add(new SimpleSectionedRecyclerViewAdapter.Section(5,"Section 2"));

所以第1部分将在索引0处,第2部分将在索引5

现在我有ChannelsInformation和channelInformation类的数据集是:

public class ChannelsInformation {
String id,channelName;
boolean isSelected , isfavorite;
}

所以我的问题是我需要做什么才能将我的dataSet添加到不同的部分?假设我有一个数据

<id = 1 , channelName = channelName1 , isSelcted = false , isfavorite = true >
2 , channelName2 , false , false 
3 , channelName3 , false , true 
4 , channelName4 , false , false 

所以上面是一些数据的演示现在我想根据两个isFavorite字段将这些数据添加到我的recyclerView中,在recylerView中添加数据后它应该如下所示:

section 1
1 - channelName1
3 - channelName3
section 2
2 - channelName2
4 - channelName4

任何想法我必须做什么才能在表单中添加我的数据,以便它像上面的例子一样组织起来?

这是将数据填充到我的recyclerView(在我的片段类中)的方式:

    public static List<ChannelsInformation> getData(){

    List<ChannelsInformation> data = new ArrayList<>();

    for (int i = 0 ; i<channelsArray.size() && i<channelsIDArray.size() ; i++ ){

        ChannelsInformation current  = new ChannelsInformation();
        current.channelName = channelsArray.get(i);
        current.id = channelsIDArray.get(i);
        current.isFavorite = channelIsFavoriteArray.get(i);

        data.add(current);
    }

    return  data;

}

任何想法怎么会这样做?任何提示或指导都将受到高度赞赏

如果代码不够,那么请让我知道我会更新它

1 个答案:

答案 0 :(得分:1)

你可以根据布尔&#34; isfavorite&#34;对你的列表进行排序。如下:

public class ChannelsInformation implements Comparable<ChannelsInformation> {
    String id, channelName;
    boolean isSelected, isfavorite;



    @Override
    public int compareTo(ChannelsInformation o) {
        int b1 = this.isfavorite ? 1 : 0;
        int b2 = o.isfavorite ? 1 : 0;

        return b2 - b1;
    }

}

然后调用Collections.sort(data);在设置你的arraylist之后。