如何将日期组合在一起并用java或kotlin显示其数据
我正在android中检索这个json,我想按日期显示数据(带有viewpager的选项卡) e、 g.-23(表1):1)id-9854359 2)id-9854360 |24(表2)id-9854361 2)id-9854360 每个选项卡都有我想显示数据的recyclerview项,但问题是我想将日期合并在一起,并根据这些数据显示数据。我尝试过使用hashmap,map…但仍然没有成功如何将日期组合在一起并用java或kotlin显示其数据,java,android,kotlin,hashmap,set,Java,Android,Kotlin,Hashmap,Set,我正在android中检索这个json,我想按日期显示数据(带有viewpager的选项卡) e、 g.-23(表1):1)id-9854359 2)id-9854360 |24(表2)id-9854361 2)id-9854360 每个选项卡都有我想显示数据的recyclerview项,但问题是我想将日期合并在一起,并根据这些数据显示数据。我尝试过使用hashmap,map…但仍然没有成功 [ { "end_time": "2020-01-23 01:45:00+00:00",
[
{
"end_time": "2020-01-23 01:45:00+00:00",
"is_booked": false,
"is_expired": false,
"slot_id": 9854359,
"start_time": "2020-01-23 01:30:00+00:00",
"username": null
},
{
"end_time": "2020-01-23 02:05:00+00:00",
"is_booked": false,
"is_expired": false,
"slot_id": 9854360,
"start_time": "2020-01-23 01:50:00+00:00",
"username": null
},
{
"end_time": "2020-01-24 02:45:00+00:00",
"is_booked": false,
"is_expired": false,
"slot_id": 9854359,
"start_time": "2020-01-24 02:30:00+00:00",
"username": null
},
{
"end_time": "2020-01-24 03:05:00+00:00",
"is_booked": false,
"is_expired": false,
"slot_id": 9854359,
"start_time": "2020-01-24 02:50:00+00:00",
"username": null
}
]
将JSON转换为类。据我所知,在Android中使用GSON是标准做法
class Entity {
String end_time
boolean is_booked
boolean is_expired
long slot_id;
String start_time;
String username;
}
List<Entity> entities = gson.fromJson(yourJsonAsString), Entity.class);
类实体{
字符串结束时间
布尔值已预订
布尔值已过期
长槽id;
字符串开始时间;
字符串用户名;
}
List entities=gson.fromJson(yourJsonAsString),Entity.class);
提取日期并按日期分组。我建议使用java Stream API,因为它仅用于以下任务:
Map<String, List<Entity>> grouppedByDate =
entities.stream().collect(
Collectors.grouppingBy(entity -> entity.end_time.split(" ")[0])
)
Map grouppedByDate=
entities.stream().collect(
Collectors.grouppingBy(entity->entity.end\u time.split(“”[0])
)
创建选项卡视图,每个选项卡都包含列表视图。
对于选项卡适配器,请使用集合
grouppedByDate.entries()
其中entry.getKey()
是此选项卡中实体的日期,entry.getValue()
是条目列表。嘿,伙计,我们如何创建时间地图(早上、下午、晚上)和List?@hiashutossingh您必须传递一个函数,该函数接受实体并将“上午”、“下午”或“晚上”
返回给grouppingBy
@hiashutossingh更好的方法是:为上午定义一个枚举。。。而不是使用strings@alijazerzen谢谢,我已经弄明白了。