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

2018-08-16  本文已影响59人  JackDaddy

    如果要实现一个消息列表,通常会选择用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. 数据返回类集合里添加数据每一段返回数据。

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

至此完成不规则分组~~

上一篇下一篇

猜你喜欢

热点阅读