简单新闻客户端APP设计

A、目的与要求

掌握 Android 中的菜单及导航框架。
掌握自定义布局。
掌握 Android 中的数据存储。

B、功能要求

要求实现体育、财经、娱乐、科技等多个新闻版块(或者自定义),并可以自由通过导航菜单切换。
对每条新闻可以打开,进行阅读详细信息,包含丰富的图片和文字。
对每条新闻可以进行点赞和评论。
新闻数据: 如果动手能力较强,可以尝试自己动手用 PHP、JSP 等搭后台,利用Android 网络编程,或者通过网络爬虫,爬取相关的新闻素材。

一、设计内容

当代社会是信息大爆炸时代,随着PC互联网日趋饱和,智能手机技术的不断突破,移动互联网发生了井喷式的快速发展,各种智能终端伴随着通讯技术的进步成为新的阅读平台。其中移动新闻客户端就是其迅速发展的一种新闻阅读应用。新闻客户端在新闻呈现方式上,采用了图文并茂方式,既发挥了门户网站新闻报道方式的专长,又使新闻阅读实现了真正意义上的“随时随地,想看就看”,同时也可以对新闻进行评论、点赞、收藏和分享等操作,使人机可以进行良好的交互。本新闻客户端可以让用户注册、登录,然后登录成功后,新闻客户端可以通过网络请求,将本地PC服务器返回的json数据解析显示在用户的手机界面上,使Android用户可以更加方便、快捷的获取新闻资讯。

1、 系统需求分析

1.1 系统功能分析

本新闻客户端主要的功能是向用户提供多个新闻板块的阅读、评论、收藏等。
本新闻客户端系统主要有以下几项功能:
1、新用户注册相应账号并且输入新用户名、身份证和电话号码以及密码。
2、 用户登录系统前可以通过身份证、手机号对用户的密码进行修改。
3、 用户登录相应账号并且输入对应密码才能进入客户端进行相应操作。
4、 自由通过导航菜单切换新闻模块,选择自己感兴趣的新闻以及下滑选择新闻过程中设计了置顶重阅功能。
5、点击每条新闻可以打开,进行阅读详细信息,包含丰富的图片和文字。
6、对每条新闻可以进行收藏、评论、点赞和分享。
7、用户登录系统后可以通过直接对用户的密码进行修改,然后用新密码重新登录。

1.2 系统功能模块设计(划分)

根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图 1-1所示。

图1-1 新闻客户端系统功能模块图

1.3 与其它系统的关系

新闻客户端系统是新闻阅读的一个组成部分。它为其它系统如新闻来源服务器端等提供新闻展示等,可以用户更加方便、快捷的获取新闻资讯。这些系统也可以使用同一个数据库或者相互调用所需的数据。

1.4 数据流程图

新闻客户端系统的数据流程大致如图1-2所示。


图1-2 新闻客户端系统数据流程图

2、数据库设计

2.1 数据库需求分析

根据上一节图1-2新闻客户端系统数据流程图,可以列出以下数据项、数据结构。
记录用户登录信息所需的数据项和数据结构:
用户登录表:用户名、身份证号、电话号码、密码。

2.2 数据库概念结构设计

下图2-1是本系统所需数据的 E-R 模型图。

图2-1 新闻客户端系统所需数据的 E-R 模型图

2.3 数据库逻辑结构设计

根据系统E-R图,需要设计1个数据表来存放用户的基本信息。这个数据表如表1所示。

表1 用户登录信息表

二、实现方法

1、功能说明

1.1 新用户注册相应账号并且输入新用户名、身份证和电话号码以及密码
1.2 用户登录系统前可以通过身份证、手机号对用户的密码进行修改
1.3 用户登录系统进入主界面进行相应操作
1.4 通过主界面导航菜单切换不同类型新闻模块
1.5 点击新闻进行阅读详细信息且可以进行收藏、评论、点赞和分享
1.6 系统内部对用户的密码进行修改

2、系统界面设计

完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。我们的系统主要有以下几个界面:
2.1 用户账号密码信息注册界面
2.2 用户账号密码登录界面
2.3 用户密码修改界面
2.4 新闻客户端主界面
2.5 热点新闻界面
2.6 生活新闻界面
2.7 科技新闻界面
2.8 娱乐新闻界面
2.9 密码修改界面
2.10 新闻客户端开屏动画界面

3、各功能模块的实现

3.1 用户账号密码信息注册界面

用户账号密码信息注册界面请见如图3-1用户账号密码信息注册界面。在这个注册界面中,需要用户输入自己专属的用户账号、身份证号码、手机号码以确保用户身份的唯一性。然后账号密码且需要与确认密码完全相同,若账号密码与确认密码不同的话会提醒用户两次密码输入不相同,请重新输入密码。同时也用if-else来判断输入的内容是否符合格式要求,比如用户身份证号码位数没有18位,即不符合当下身份证号码的数据长度,身份证的输入框会清空并且提示身份证号码格式不正确,让用户重新输入。若全部符合且正确输入,则使用MyHelper类创建的对象,然后调用execSQL去执行SQL语句创建数据库以及登录表,然后再调用结合insert-values将注册的内容写入到数据库中的登录表login。
实现用户账号密码信息注册界面判断用户注册信息正确与否的部分主要代码:

if (name.length() == 0) {Toast.makeText(this, "用户名不能为空!", Toast.LENGTH_LONG).show();break;
} else {if (idcard.length() == 0) {Toast.makeText(this, "身份证号码不能为空!", Toast.LENGTH_LONG).show();break;} else {if(idcard.length()!=18){Toast.makeText(this, "身份证号码格式不正确!",Toast.LENGTH_LONG).show();mEtidcard.setText("");break;} else{if (phone.length() == 0) {Toast.makeText(this, "手机号码不能为空!", Toast.LENGTH_LONG).show();break;} else {if(phone.length() != 11){Toast.makeText(this, "手机号码格式不正确!", Toast.LENGTH_LONG).show();mEtphone.setText("");break;}else{if (psd.length() == 0) {Toast.makeText(this, "密码不能为空!", Toast.LENGTH_LONG).show();break;} else {if (psdag.length() == 0) {Toast.makeText(this, "确认密码不能为空!", Toast.LENGTH_LONG).show();break;} else {if (psdag.equals(psd)) {xrr = myHelper.getReadableDatabase();
Cursor cursor = xrr.rawQuery("select * from login where idcard=? ",              new String[]{idcard});if (cursor.getCount() != 0) {Toast.makeText(this, "该用户已经存在,不能重新注册!", Toast.LENGTH_LONG).show();mEtusername.setText("");mEtidcard.setText("");mEtphone.setText("");mEtpsw.setText("");mEtpswagain.setText("");break;} else {values.put("userid", name);values.put("idcard", idcard);values.put("phone", phone);values.put("password", psd);long id = xr.insert("login", null, values);Toast.makeText(this, "注册成功,请重新登录系统", Toast.LENGTH_LONG).show();xr.close();Intent intent = new Intent(this, MainActivity.class);startActivity(intent);}} else {
Toast.makeText(this, "两次密码输入不相同,请重新输入!", Toast.LENGTH_LONG).show();mEtpsw.setText("");mEtpswagain.setText("");break;}}}}
}}}}


图3-1用户账号密码信息注册界面

3.2 用户账号密码登录界面

用户账号密码登录界面请见如图3-2用户账号密码登录界面。在这个登录界面中,需要用户输入之前已经注册过的用户名和用户密码。然后通过使用MyHelper类创建的对象,然后调用rawQuery去执行SQL语句进行查询登录表login中的数据,最后若数据库中登录表的用户密码与注册密码不同的话会清空输入框让用户重新输入账号和密码,若匹配相同,则进入系统主界面。
实现用户账号密码登录界面判断用户输入账号密码是否匹配的部分主要代码:

username = mEtuser.getText().toString();
password = mEtpsw.getText().toString();
xr = myHelper.getReadableDatabase();
Cursor cursor = xr.rawQuery("select * from login where userid=? and password=?",new String[]{username,password});
if(cursor.getCount()==0){Toast.makeText(this,"账户或者密码错误,请重新输入!",Toast.LENGTH_LONG).show();mEtuser.setText("");mEtpsw.setText("");
}else{Toast.makeText(this,"登录成功,欢迎您使用易闻",Toast.LENGTH_LONG).show();cursor.close();xr.close();Intent intent = new Intent(this,zhujiemian.class);intent.putExtra("names",mEtuser.getText().toString().trim());startActivity(intent);
}


图3-2用户账号密码登录界面

3.4 新闻客户端主界面

新闻客户端主界面请见如图3-4(1)新闻客户端主界面,且包含图3-4(2)新闻置顶重阅、图3-4(3)新闻详读。在这个新闻客户端主界面中,用户首先可以直接点击详细阅读新闻,同时也可以通过导航菜单进行切换不同版块的新闻进行浏览阅读且可评论、点赞及转发、收藏和分享,同时在浏览新闻的过程中也可以点击Toolbar置顶进行重阅,还可以进行用户系统内部密码修改和退出系统回到用户账号登录界面,在实现新闻阅读采用的是Tomcat搭建好PC服务器,然后通过解析JSON文件进行新闻内容显示。
实现新闻客户端主界面导航菜单切换新闻模块的部分主要代码:

public boolean onNavigationItemSelected(MenuItem item) {// Handle navigation view item clicks here.int id = item.getItemId();if (id == R.id.hot_news) {//热点新闻initView();fillData(1);System.out.println("截至点a");} else if (id == R.id.life_news) {//生活新闻initView();fillData(2);System.out.println("截至点b");} else if (id == R.id.scince_news) {//科技新闻initView();fillData(3);System.out.println("截至点c");} else if (id == R.id.happy_news) {//娱乐新闻initView();fillData(4);System.out.println("截至点d");} else if (id == R.id.modify_p) {Intent intent1 = new Intent(this,ModifypersonActivity.class);intent1.putExtra("names",username);startActivity(intent1);System.out.println("截至点e");} else if (id == R.id.back_m) {Intent intent = new Intent(this,MainActivity.class);startActivity(intent);System.out.println("截至点f");}


图3-4(1)新闻客户端主界面

图3-4(2)新闻置顶重阅


图3-4(3)新闻详读

以上只是简单新闻客户端APP部分设计内容和源代码资源,如果想要简单新闻客户端APP全部资源请点击下面资源链接进行下载,希望能帮助到你!

独家资源:点击资源下载链接

同时在完成相关设计可能会用到的博主博客中的文章内容:

1、安装Android Studio的最新最简最详细安装教程
2、RelativeLayout布局实验(Android Studio)
3、android studio中出现com.google.gson.JsonSyntaxException: com.google.gson.stream.类似错误的一种解决方案
4、在手机上app中链接或者浏览器上访问电脑上Tomcat搭建的服务器以及其内容
5、Android studio开发APP时设置更改启动时的主界面程序
6、Android Studio进行APP设计开发之矢量图及XML文件转换
7、SQLite轻量级数据库的注意事项

各位大佬如有更好的建议或者不清楚的地方让各位产生了疑问,各位可以在评论中提出!

简单新闻客户端APP设计相关推荐

  1. Android实战简单新闻客户端(2)---新闻分页界面设计

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 安卓实战简单新闻客户端2直接点击即可前往访问. 更多技术文 ...

  2. 超超超超超详细的计网课设报告-简单电子邮件客户端的设计与实现

    简单电子邮件客户端的设计与实现 目录 题 目: 简单电子邮件客户端的设计与实现- 1 一. 设计背景- 1 二. 设计内容及目的- 1 三. 设计环境- 2 四. 预备知识- 2 五. 设计思路- 6 ...

  3. Android实战简单新闻主界面设计

    前言 这是自己学习过程单独做出来的,挺适合新手学习,熟悉最基本的banner,imageview,listview,text等等基础控件,适合初学者,原项目共有五个模块,这个是其中一个模块 提示:以下 ...

  4. 基于安卓的新闻客户端app的设计与实现

    开发工具(eclipse/idea/vscode等):as 数据库(sqlite/mysql/sqlserver等):mysql 功能模块(请用文字描述,至少200字): 注册登录 新闻查看 评论 个 ...

  5. 共享单车安卓客户端app设计

    目录 碎片(Fragment) 百度地图API 使用百度地图定位并显示位置 首先展示一下最终的成品效果吧,首先是登陆界面: 然后是地图显示界面(A表示自身位置,B表示自行车位置): 此外还有密码修改界 ...

  6. 基于Java实现的简单便签app设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85795175 资源下载地址:https://download.csdn.net/downl ...

  7. 设计之下——搜狐新闻客户端的用户体验设计(全彩)

    设计之下--搜狐新闻客户端的用户体验设计(全彩) 宣传语:以真实工作场景讲交互设计.视觉设计流程与方法,及设计师要懂的产品.开发.运营.市场,解决设计师遇到的问题 搜狐新闻客户端UED团队 编著 IS ...

  8. android新闻客户端发展趋势,基于Android平台的新闻客户端设计与实现

    杨苏雯 摘 要 在Android开发平台上,并在JavaWeb开发的PC端新闻网站的基础上结合现在的需求开发了移动版的新闻客户端App,这个系统设计主要分为用户登录验证模块.新闻列表的显示功能模块以及 ...

  9. android新闻客户端实验报告,基于Android平台的新闻客户端设计与实现

    摘 要 在Android开发平台上,并在JavaWeb开发的PC端新闻网站的基础上结合现在的需求开发了移动版的新闻客户端App,这个系统设计主要分为用户登录验证模块.新闻列表的显示功能模块以及新闻内容 ...

  10. 《设计之下——搜狐新闻客户端的用户体验设计(全彩)》

    <设计之下--搜狐新闻客户端的用户体验设计(全彩)> 基本信息 作者: 搜狐新闻客户端UED团队 出版社:电子工业出版社 ISBN:9787121220999 上架时间:2014-1-23 ...

最新文章

  1. VM虚拟机报错:An error occurred during the file system check.
  2. 十个效果酷炫的Linux系统操作指令(像黑客帝国般的效果~)
  3. 【渝粤教育】21秋期末考试建设工程法规10221k1
  4. 在博客里轻松使用LaTeX 数学公式[转]
  5. js实现右键单击打开自定义的菜单
  6. 配置ssl证书_Mysql配置ssl证书
  7. 范数与L1损失(MAE)、L2损失(MSE)的关系
  8. 拼多多:不搞套路,要实现同品全网最低价直售
  9. 马云妇女节寄语女性:没有败家的女人 只有爱家的女人
  10. mpvue微信小程序动画_在 mpvue 使用 echarts 小程序组件
  11. (HDOJ 2043)密码
  12. 有什么推荐的软件工程本科的毕业设计题目嘛?
  13. 在你可以执行与打印机有关的任务(例如页面设置或打印一个文档)之前,你必须已经安装打印机。你想现在安装打印机吗?
  14. 千万千万不要和女程序员做同事!否则你会......爱上她
  15. 如何在Word小方框里打勾
  16. 国王学院计算机科学,伦敦大学国王学院计算机科学本科.pdf
  17. 酷派大神F1联通版(8927W)刷MIUI 7,打造方便父母使用的老人机
  18. 未明学院:看了这份途牛数据报告,我终于明白为什么大部分人还是选择跟团游……
  19. jvm与非jvm语言优劣_JVM语言的兴衰
  20. 做回归分析时import ConvergenceWarning出错的问题

热门文章

  1. linux 两台设备网桥配置6,linux2.6内核网桥分析
  2. 张晨北京科技大学计算机,北京大学2010拟初取推荐免试研究生公示名单.doc
  3. java物流项目描述_java-web模块物流项目四
  4. 应用matlab快速实现实验对象随机分组,应用MATLAB快速实现实验对象随机分组
  5. PPT全屏错误 显示不全
  6. 图片格式转换怎么做?教你几招搞定图片格式转换
  7. 详解:Salesforce元数据支撑SASS架构设计
  8. 邮箱 手机号 格式要求
  9. 神州数码招聘软件测试,神州数码面试经验
  10. python 查找字符第一次出现位置_python 字符串第n次出现的位置 | 学步园