美文网首页
Android 通过Gson传递数据转化实体类实现不规则分组功能

Android 通过Gson传递数据转化实体类实现不规则分组功能

作者: JackDaddy | 来源:发表于2018-08-16 11:56 被阅读59次

        如果要实现一个消息列表,通常会选择用recycleView来实现,比如微信,QQ,这一种,每一个Item项都是相同的,处理起来只需:

    1.数据源,2.适配器,3.Item项布局,4.recycleview布局

    今天要说的是不规则列表该如何实现,先上图看看效果:

    不规则列表

    在这里提供一个解决思路:

    1.整个页面放置一个recycleView

    2.在每个Item项中再放置一个recycleView。

    3.操作数据源,数据源分组。

    在这里我们重点说一下嵌入的recycleView与被嵌入的recycleView

    主recycleView:MsgAdapter

    内嵌recycleView:LeftDeletAdapter

    由于在主recycleView里的每一项都嵌入一个recycleView,因此,在MsgAdapter里的bindViewHolder里做内嵌recycleView 的初始化以及数据绑定:

    初始化内嵌recycleView,以及绑定数据

    接下来是操作数据源了:

    我们从后台数据库拿到的数据为:

    后台数据

    根据数据写一个实体类(截出部分代码):

    返回实体类

    通过build.gradle导入gson包:

    导入gson包

    通过Gson转化成实体类:

    转化成实体类

    然后是实现数据的不规则分组:

    1.我们需要的是所有数据中的不同的日期

    2.同时我们需要相同的日期下的所有数据。

    因此我们定义一个数据操作类,其中

    一个   返回数据  的 集合  来存放返回来的每一条数据,

    一个  String  用来存放日期。

    数据操作类

    要进行不规则分组,我们首先要知道List与Set的区别:

    List 是有序可重复的集合,Set是无序且不可重复的:

    因此实现分组的算法如下:

    数据分组

    一些注释:

    1. 我们传入一个返回的数据集合进行操作,返回一个操作数据类的集合

    2. 新建返回数据类的集合。

    3. 遍历 返回数据 集合,在遍历中拿到每一段返回数据,

    4. 如果set集合里不包含日期,初始化 操作数据类  对象 ,set集合 添加日期,初始化返回数据集合 , 操作数据类添加  操作数据对象

    5. 数据返回类集合里添加数据每一段返回数据。

    如果注释得不够明白还是看代码吧~~~~

    至此完成不规则分组~~

    相关文章

      网友评论

          本文标题:Android 通过Gson传递数据转化实体类实现不规则分组功能

          本文链接:https://www.haomeiwen.com/subject/ggenbftx.html