现在是大四学生,毕设做的是Android项目,需要实现类似抖音一样的评论系统,搜寻网上信息无果,在观察抖音的评论系统后模仿做出,下面以此平台,写下笔记,讲述实现原理和步骤,下面是实现的效果图。
一、要实现上图所示效果,分析需求步骤如下:
1.历史评价及回复显示
(1)在Mysq建立数据表格
(2)查询数据填充至Adater适配器
(3)评论全部显示,回复只显示一条
(4)点击更多回复,展开回复,点击收起,收起回复
2.对评价进行回复(本设计只需要对评论进行回复,用户添加评论和添加回复实现原理类似,此处不赘述)
(1)点击任一评论及回复,都可弹出输入框,进行回复
(2)回复内容显示在页面,并存入数据库
(3)用户下一次打开,显示最新添加的回复信息
二、数据表
1.数据表的建立
(1)评价表
列名 | 数据类型 | 内容 | 说明 |
eid | INT | 评价编号 | 主键 |
rid | INT | 预约编号 | 外键、非空 |
evolution | VARCHAR(20) | 评价内容 | 可空 |
ecreatetime | DATETIME(6) | 评价创建时间 | 可空 |
(2)回复表
列名 | 数据类型 | 内容 | 说明 |
aid | INT | 回复编号 | 主键 |
eid | INT | 评价编号 | 外键、非空 |
answer | VARCHAR(255) | 回复内容 | 非空 |
acreatetime | DATETIME(6) | 回复创建时间 | 非空 |
uid1 | VARCHAR(20) | 回复用户账号 | 非空 |
uid2 | VARCHAR(20) | 被回复用户账号 | 非空 |
2.数据表的查询方法(评价表与回复表是一对多的关系,需要在查询时在评价类里添加一个集合属性,把该评价对应的一至多回复信息封装在一个list集合里,便于传输)。
(1)evlute(bean类)
//该类还需要添加课程信息、评论者的信息
private int clazzid;// 课程号
private String cname;
private String cimg;
private String ckinds;
private String clevel;
private String reservetime;
private int rid;// 预约id
private int eid;// 评价id号
private String evolution;// 评价内容
private String uid;// 评论者id
private String uname;// 评论者用户名
private String uimg;// 评论者头像
private String ecreatetime;//评论创建时间
//对应的回复信息,应该通过eid查出来
public List<Answer> alist = new ArrayList<>();
(2)