一、系统需求分析
启动程序后,通过登陆注册进行程序,能够进行新闻资讯的实时更新,点击新闻可以查看新闻的详细内容,在详情页点击收藏,能够将新闻添加到收藏列表中,再次点击,取消收藏,并可以通过个人信息页面设置个人的信息。
功能需求:
(1) 登陆注册
(2) 获取和更新新闻
(3) 收藏新闻
(4) 修改个人信息
应用界面:
二、系统总体设计
2.1 系统整体结构
源代码文件结构图:
2.2 数据存储设计
2.2.1用户信息E-R图
2.2.2 新闻数据E-R图
2.2.3 收藏数据E-R图
三、系统详细设计
3.1 注册功能
用户输入用户名,邮箱和密码,遍历用户表,若是用户名已存在或邮箱已注册,提醒用户重新输入,否则注册成功,返回登陆页面
3.2 登陆功能
将用户输入的用户名和密码,与数据库存储的用户表对比,完全正确则进入新闻页面
3.3 查看新闻列表
页面初始化时,向服务器请求数据,对请求到的的json数据进行解析,并包装成List,最后展示在新闻列表页面
3.4 新闻详情页面
展示新闻详情,增加一个收藏按钮,实现收藏新闻和取消收藏的功能,同步更新数据库
3.5 个人信息页面
实现修改个人信息,包括性别、居住城市和个性签名
3.6 我的收藏页面
展示收藏的新闻,点击可以查看新闻详情,并取消收藏
四、系统实现
4.1 注册功能
通过LitePal操作数据库,遍历用户表,判断用户名和密码是否正确
users = DataSupport.findAll(User.class);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(User user: users){
if (registerName.getText().toString().equals(user.getName())||
registerMail.getText().toString().equals(user.getMail())){
flag = false;
break;
}
}
if (flag){
User user = new User();
//开始组装数据
user.setName(registerName.getText().toString());
user.setMail(registerMail.getText().toString());
user.setPassword(registerPass.getText().toString());
//保存数据
user.save();
Toast.makeText(Register.this, "注册成功", Toast.LENGTH_SHORT).show();