




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全套设计加扣 3012250582湖南软件职业学院毕业设计毕业选题: 基于Android系统的新闻客户端 指导教师: 学生姓名: 院系名称: 软件工程系 专业班级: Java1304 学生学号: 提交日期: 2015年12月19日 全套设计加扣 3012250582目 录第一章 绪论.- 1 -1.1 研究内容.- 1 -1.2 研究意义- 1 -1.3 研究现状和发展趋势- 1 -第二章 系统分析与环境搭建- 3 -2.1 研究目标- 3 -2.2 可行性分析- 3 -2.3 需求分析- 3 -2.4 性能分析- 4 -2.5 开发环境的搭建- 4 -2.5.1 Java环境配置- 4 -2.5.2 Eclipse的安装- 4 -2.5.3 Eclipse Standard 4.3.2的安装- 4 -2.5.4 Tomcat服务器的安装- 4 -2.5.5 安装SQLite数据库- 5 -第三章 系统设计- 6 -3.1 系统流程- 6 -3.1.1 模块设计- 6 -3.1.2 功能设计- 7 -3.2 用户界面设计- 7 -3.2.1 新闻页面- 8 -3.2.2 贴吧页面- 8 -3.2.3 知道页面- 9 - 3.2.4 图片页面.- 9 -3.3 服务端设计- 9 -3.4功能的实现- 10 -3.4.1文件结构与说明- 10 - 3.4.2具体实现- 11 -第四章 系统测试- 17 -4.1 软件的测试- 17 -4.2测试与实现的结果及说明- 17 -第五章 总结与展望- 22 -5.1 总结- 22 -5.2 展望- 22 -参考文献- 23 -致谢.- 24 -附录A- 25 -第一章 绪论1.1 研究内容 Android应用平台新闻客户端软件是基于Android手机平台,采用Java语言,从网络上的开放的新闻接口获取数据,设计出针对使用Android平台的手机新闻客户端资讯实时掌控的手机应用程序。1.2 研究意义 Android平台新闻客户端软件的开发可以进一步扩大时事新闻的覆盖面,让广大公众能够随时随地方便且快捷地获取最新的新闻资讯信息,了解新闻时事,本软件的广泛使用,尤其是在传授知识、普及教育方面起着非常重要的作用。1.3 研究现状和发展趋势 目前市场研究机构Worldpanel发布了全球主要的国家智能手机操作系统在去年Q4内的分布报告,报告指出了谷歌的Android继续保持着增长的势态,但是增幅已经明显放缓了。而在另一个方面,苹果IOS操作系统在全球智能能手机市场上均有下滑,个别国家的降幅甚至高达10.3%。最新统计数据中显示,Android操作系统将继续领跑全球市场,包括美国、澳大利亚、中国、意大利、英国、德国、西班牙等所占的市场比例都已经超出50%,并且还将继续呈现上涨的趋势。而在苹果IOS操作系统方面,最大的市场份额所占比的国家依旧是美国,数值为43.9%;紧随美国的则是澳大利亚,数值为35.2%;而在中国方面,市场份额也从21.2%下降到了19%;在意大利,iOS所占的市场份额更是从23.1%猛降至12.8%1。 从上面的数据可以看出,Android手机软件的开发具有巨大的发展前景,在Android系统上开发出一款手机新闻客户端软件所支持的用户量也是相比较于其他系统多出很多的。 谷歌的移动平台主管安迪鲁宾(Andy Rubin)表示,跟软件开发合作对象的密切接触正在进行中。Google与开放手机联盟联合开发了 Android操作系统,这个联盟由摩托罗拉、高通、宏达电、中国移动和 T-Mobile 等在内的多家无线应用和技术的领军企业组成。Google通过与设备制造商、开发商、运营商和其他有关各方结成深层次的合作关系,希望借助建立开放式、标准化的移动移动电话软件平台,在移动产业内形成一个开放性的生态系统,这将是开发Android软件的一个契机,Android平台的开发在将来必定大放异彩2。- 2 -第二章 系统分析与环境搭建2.1 研究目标 1) 了解Android应用的设计和开发过程; 2) 使用多种组件进行Android 平台新闻软件的开发。3)本款手机新闻客户端软件是采用java语言编写,基于Eclipse的开发平台,连接网络新闻数据接口,开发出针对Android平台的新闻客户端手机软件。2.2 可行性分析开发任何一个基于手机的应用程序,都会受到资源和时间上的限制。因此,在接收任何一个应用程序发任务之前,必须根据用户可能提供的资源和时间条件进行可行性分析,旨在减少项目开发风险,避免人力、财力和物力的浪费。风险分析与可行性分析在很多方面是相互关联的,项目的风险越大,开发质量高的软件的可行性的几率就越小。 1)经济可行性采用的手机数据流量作为通信手段,当今通信技术的迅速发展,3G的运营商的GSM网络已经逐渐被当今的4G、甚至是5G所取代,数据流量的资费也越来越低,而且现在很多手机都可连接无线wifi, 实现数据流量0资费,大大加强了本新闻阅读软件的经济可行性。 2)技术可行性开发一个新闻客户端软件,用到的技术不会十分复杂,用到最多的就是客户端与服务端的数据交换时所用到的servlet及常见的数据库技术,android系统下的解析json数据以及UI的设计,经查阅相关资料是可以实现的。2.3 需求分析 启动程序后可以进行新闻资讯的实时更新,用户可根据自己喜欢的新闻进行搜索展现在首页,同时,能对感兴趣的新闻资讯发表自己的意见,进行评论,其他用户也能看见别人发表的评论,从而进行互动交流,增强用户的体验感。用户同时可以去搜索自己感兴趣的百度贴吧帖子,进而了解其相关信息在贴吧页面显示。同时该应用也提供了搜索用户自己不懂的问题的查看,百度图片的的查看与下载,从上面的描述中可以基本了解软件的功能需求: 1)启动应用程序; 2)首页界面:采用多种布局嵌套,美化控件。 3)显示界面:模仿网易新闻客户端进行UI编写。4)详细界面:分为头条、推荐、娱乐、体育等板块。2.4 性能分析从用户的角度出发,针对用户的需求,所涉及的程序响应速度快、信息处理速度快、安全性高是用户所需要的三大主要性能2,另外为了受众面更广,根据目前的android设备系统版本的分布情况,android2.3以上的版本占到设备总量的80%以上,所以做开发的时候选择的android系统最低版本也必须是android2.3以上来保证用户量。2.5 开发环境的搭建2.5.1 Java环境配置采用jdk的版本是jdk1.6,目前jdk版本最高的是jdk1.8,但是为了程序的稳定性,还是采用已经稳定成熟的版本作为开发工具。从Oracle公司下载 jdk1.6之后安装,由于本机的开发系统是win7的64位操作系统,选择下载64为jdk,然后按照安装步骤一步一步next,jdk就安装完成了,然后配置环境java的环境变量,整个jdk的过程就完成了。2.5.2 Eclipse的安装从Eclipse官网/downloads/下载Eclipse3.2,根据系统下载相应的Eclipse版本,点击解压缩就行了,然后启动eclipse.exe就行了。值得注意的是Eclipse的bit数要与jdk的一致,就是说jdk如果是32位的,Eclipse也要是32位的。2.5.3Eclipse Standard 4.3.2的安装Eclipse Standard 4.3.2版本用来做服务器端程序,方法与Eclipse的方法类似。2.5.4 Tomcat服务器的安装从下载tomcat6.0作为的服务器,下载好文件后开始安装,点击下一步,在安装过程中会提示设置默认的服务器端口号,若是不做修改默认为8080,建议不要修改,安装完成。在Eclipse for JavaEE建立服务器工程的时候选择刚刚安装的tomcat作为服务器就行了。2.5.5 安装SQLite数据库现如今有很多种类的数据库,如oracle、sqlserver等等很多种,本设计的开发涉及到的数据并不是很多所以选择一种轻量级的数据SQLite和MySQL数据库l3。第三章 系统设计3.1 系统流程3.1.1 模块设计软件分为了两大模块,分别是新闻客户端模块和服务器模块。图形解析能够清楚的看出程序的功能与流程,下图3-1是手机客户端流程图: 新闻界面详细界面服务器接收指令接收服务器的数据评论界面显示在界面图3-1 手机客户端流程图如下图图3-2所示的是服务器端的流程图:客户端服务器接收指令生成sql语句调用sql类返回结果数据库操作图3-2 服务器流程图3.1.2 功能设计手机客户端模块功能结构如下图所示3-3: 新闻客户端 新闻内容管理游戏科技时尚财经娱乐体育推荐头条详细内容管理 评论管理 图3-3 客户端功能结构图服务器端模块功能结构如下图3-4所示:数据库配置数据转换工具数据解析配置数据交互管理数据模型配置 服务器端 图3-4 服务器端功能结构图3.2 用户界面设计根据需求分析可知, 应用程序应包含4个主要的用户界面,这里要进一步分析每个用户界面中应该包括哪些显示内容。3.2.1 新闻页面1)在“新闻概况页面”中,需要显示得是各类新闻的的栏目头,然后在选择栏目头时选择相应的新闻资讯信息显示在当前的栏目头下,资讯信息以一个ListView的形式展示在界面上,用户可拖动获得内容,并在滑到最后一个内容时有一个加载更多的文字,用户等待之后可以获得更多内容。2)在“详细新闻页面”中,用户在点击了一条新闻之后,可以进入详细新闻界面,在界面中会展示当前所点击新闻的标题、发表时间、作者以及评论条数,在点击新闻详细内容的区域向两边滑动的时候还能显示上一条新闻和下一条新闻,方便操作,不需要返回上一个界面之后才能阅读上一条或者下一条。3)在“新闻评论页面”中,此页面展示的信息就比较简单了,根据时间的排列显示相应新闻的评论内容,一条内容包含的信息有,用户所在的省份,发表的时间以及评论的内容,在发表评论的编辑框会默认提示用户“请文明发表言论”。下图就是根据对新闻界面显示内容的分析,绘制出用户界面的草图。 图3-5新闻用户界面草图、3.2.2 贴吧页面1) 在“贴吧概况页面”中,需要显示得是查询的相关的贴吧帖子.帖子信息以一个ListView的形式展示在界面上,用户可拖动获得内容,并在滑到最后一个内容时有一个加载更多的文字,用户等待即可,该应用会自动从百度贴吧获取的帖子信息。2) 在“详细贴吧页面”中,用户在点击了一条帖子之后,可以进入详细帖子界面,在界面中会展示当前所点击帖子的标题、发表时间、作者以及评论条数,如果要获取更多相关帖子信息点击按钮即可跳转到更多的帖子页面,方便操作,不需要返回上一个界面之后才能阅读上一条或者下一条。3.2.3 知道页面 1)在“知道概况页面”中,需要显示得是查询的相关的百度知道,信息以一个ListView的形式展示在界面上,用户可拖动获得内容,并在滑到最后一个内容时有一个加载更多的文字,用户等待即可,该应用会自动从百度知道获取的问题答案信息。 2)在“详细知道页面”中,用户在点击了一条新闻之后,可以进入详细知道界面,在界面中会展示当前所点击问题项的标题、发表时间、作者等3.2.4图片页面 1)在“图片概况页面”中,需要显示得是查询的相关的百度图片,信息以一个ListView的形式展示在界面上,图片展现可更具图片大小展示一张显示还是两张显示在一项中,用户可拖动获得内容,并在滑到最后一个内容时有一个加载更多的文字,用户等待即可,该应用会自动从百度图片获取的问题答案信息。 2)在“详细图片页面”中,用户在点击了一张图片之后,可以进入图片大图显示界面,方便用户更清楚查看图片,长按图片可将图片下载到本地。3.3 服务端设计 本软件是一个需要存储很多新闻资讯信息的程序,其中包括新闻的阅读和用户的评论信息,这些数据都是要调用百度的公开公共接口中查询而来的并不是缓存的数据,也不是从数据库查询出来的,所以少不了调用注册百度开发者账号,从而获取百度新闻数据,百度图片数据,百度贴吧数据,百度知道数据,而后台服务是整个应用程序的核心,主要是“数据获取”,用户进行点击操作,后台服务接收用户的指令,向服务器接口调用收据,服务端接收指令,从服务器进行相应的增删改查,然后返回信息给客户端,使用户获得需要的新闻资讯,百度知道,百度图片,百度贴吧等数据满足客户的需求。服务端器端的代码主要的功能就是对数据库进行的操作,采用javaEE技术通过接受客户端传过来的指令查询数据库,然后返回json数据格式的数据跟客户端进行数据交互操作,简单方便,手机客户端接收的时候也能十分方便的解析出来,显示在用户界面上。在完成用户界面设计、服务器和数据库设计后,至此软件的框架设计阶段基本完成。3.4功能的实现3.4.1文件结构与说明1) 客户端Eclipse开发部分在程序的开发阶段,首先确定“Android平台新闻客户端”的工程名为“最爱新闻”,据程序模块设计的内容,建立“最爱新闻”工程,然后分析完成功能所需要的代码结构,认真完善,做好每一个功能。其工程源代码的结构与作用如下图3-9所示。 图3-9“最爱新闻”工程的源代码文件为了使源代码文件的结构更清晰,最爱新闻”工程设置了多个命名空间,其包的作用分别展示在下表。表3.4 “最爱新闻”工程的文件用途说明包 名 称文 件 名说 明com.linpeng.baidunewssearchMainActivity.java主要新闻展示的页面cpm.linpeng.adapterNewsListViewAdapter新闻的适配器com.linpeng.utilFileUtil将文件写入utilHttpTool网络连接工具类serviceGetNewsService获取网上新闻的类com.linpeng.fragmentFragmentNews新闻展示页面com.linpeng.domainNews.java封装新闻对象类com.linpeng.test test.java对数据测试类Android中资源文件都保存在/res的子目录中。其中,/res/drawable/目录中下保存的是图像文件,/res/values目录中保存的是自定义的字符串和颜色的文件以及样式文件,/res/xml目录中保存的是xml格式的数据文件,/res/layout目录下保存的是UI的布局文件。/res/anim目录下包含的是所有的动画控制文件。程序开发阶段可以被调用的所有资源都保存在这些目录中4,具体的文件图图3-10示如下。 图3-10 android资源文件图 3.4.2具体实现 页面的设计与实现1)开头定义出页面所需要用到的控件以及新闻栏目的适配器,从代码中可以看出,除了全局变量select_content,fragments,并对MainActivity的RadioGroup进行点击监听,方便页面跳转到其他页面,显示其他内容。点击新闻栏目之后,MainActivity会显示相应栏目下的的新闻信息,若此栏目下有新闻的话就会显示出来,若没有新闻的话就会提示“该栏目下没有新闻信息”,要是手机无法连接网络的话就会提示“网络无法连接”,十分清楚的告诉用户现在所处的状态。客户端采用的是异步任务,其中AsyncTaskt类是十分方便的异步访问类,它是封装好的,这个类是对Handle和线程类进行结合类,并且不用再写回调方法,只需要AsyncTaskt类对象去执行AsyncTaskt类的execute()将对应的参数传过去,然后重写两个方法,一个是doInBackground(),另一个是onPostExecute(),其中doInBackground()方法是访问网络接口,在doInBackground()内部调用获得的数据通过调用GetNewsService的getNewsByPage()。而在getNewsByPage()中对服务端返回来的 JSON数据进行解析,而对JSON进行解析需要导入GSON的jar包进而获取新闻对象2) 访问接口成功后,获取了新闻数据的对象,然后将之填充到我们的页面显示,解析MainActivity.java页面中接收的json格式数据,需要导入json包的支持,代码见附录A。3) 加载更多新闻,是访问new MyAsyncTaskGetNews()这个接口,h滑动的时候只是传的第二个参数变成了我们需要加载的新闻个数,这是一个变量由我们自己定义出来的,execute(page);。execute(page)新闻数目的page就是自己定义出来的变量。实现的代码如下:protected void onPostExecute(List newss) public void onClick(View v) if(flag=1)adapter.getNewss().clear();adapter.addNews(newss);adapter.notifyDataSetChanged();page+;);4) 关于界面的退出,是重写了onKeyDown()的方法,判断是否按了后退键,然后在界面上提示再按一次退出键退出程序,两次退出操作的时间间隔超过两秒退出无效,两秒以内完成退出操作,具体界面退出的代码见附录 新闻详细页面的设计与实现: 1)页面初始化首先要初始化变量一些控件和变量的信息,如搜索控件按钮builde,_titlebar_previous,确定按钮bt_ok,评论的按钮newsdetails_titlebar_comments,以及手指触摸屏幕时记录的坐标StartX起点坐标X,float StartY起点坐标Y等等相关的控件及变量。 2)发送评论评论按钮newsdetails_titlebar_comments会通过intent对象把新闻的nid穿到评论页面,这里是实现按钮的监听,实现代码:newsdetails_titlebar_comments.setOnClickListener(newOnClickListener() public void onClick(View v) Intent intent = new Intent(NewDetailActivity.this,CommentActivity.class);intent.putExtra(nid, mNid);startActivity(intent););根据用户的体验感,显示详细新闻信息的时候希望能够不用返回主新闻界面查看下一条或者上一条新闻,所以在详细新闻页面添加手势判断功能,手指触摸屏幕实现上一条或者是下一条,然后添加动画效果,让用户用起来更加舒服,更加人性化,动画效果的配置在res/anim目录下。 评论界面的设计与实现 1)初始化变量首先定义页面控件和一些变量,首先定义出评论界面的控件和变量,如发表按钮news_reply_post,LinearLayout news_reply_edit_layout;/评论的编辑区域,LinearLayout news_reply_img_layout;/评论的图形区域 2)获得评论信息获得评论信息,访问评论的接口,以get方式传递新闻的id,然后从json的格式数据中获得返回的评论信息,要是没有网络或者传递的参数不正确会弹出toast框提示错误信息。获得评论的接口地址是:url=:8080/News/getComments?nid=+nid&startnid=0&count=10;里面的三个参数分别是:nid新闻ID,startnid评论的起始ID和count每次需要获得的数目,参数的作用就是让我们每次访问时,只获取10个数据,这样的好处就是节省数据流量,并且无需占用手机额外的内存。 3)发送评论信息以post方式请求数据,通过Requestparams对象传递参数信息,发送评论的接口地址是:String url = :8080/News/postComment,需要传递的参数是:nid新闻ID,region发送人的地址,content发送内容,访问的方法是采用异步http访问框架的post方法访问成功会返回发送成功了信息,失败也会有相应提示,核心代码参见附录A。Eclipse Standard服务器端开发部分1)首先导入测试类和mysql的jar包如下图3-12。 图3-12 测试类和mysql的jar包2)配置servlet的web.xml文件详见附录A 3)数据库管理类SqlManager.java的作用就是连接数据库配置的属性,包括数据库主机地址、数据库名、数据库端口、数据库密码、连接字符串、连接对象。配置资源文件和JDBC的驱动类型,代码如下: private static SqlManager manager = null; / 静态变量,支持单态模式 private PropertyResourceBundle bundle; / 配置资源文件 private static String jdbcDrive = null; / JDBC驱动类型 private String DBhost = ; / 数据库主机地址 private String DBname = ; / 数据库名 private String DBprot = ; / 数据库端口 private String DBuser = ; / 数据库用户名 private String DBpasswd = ; / 数据库密码 private String strcon = null; / 连接字符串 private Connection conn = null; / 连接对象 private PreparedStatement pstm = null; private CallableStatement cstm = null; 私有的成员变量只是定义出来,并没有进行初始化,创建一个Cperties的配置文件,用来配置连接数据的各项配置参数。Cperties的配置信息如下:DBpassword=123456 然后再SqlManager.java添加一个私有的构造方法,将Cperties的配置信息加载到代码中来,用new 一个属性资源的bundle,参数是得到一个配置文件的输入流,构造方法如下:private SqlManager() throws IOExceptionbundle = new PropertyResourceBundle(SqlManager.classgetResourceAsStream(Cperties);this.DBhost = getString(DBhost); / 读取主机名this.DBname = getString(DBname); / 读取用户名this.DBprot = getString(DBport); / 读取端口this.DBuser = getString(DBuser); / 读取用户this.DBpasswd = getString(DBpassword); / 读取密码/ 设置mysql数据库的驱动程序和连接字符jdbcDrive = com.mysql.jdbc.Driver;strcon = jdbc:mysql:/ + DBhost + : + DBprot + / + DBname; 我们对数据库的增、删、改、查用到的方法全都依赖于SqlManager.java中的方法,要在SqlManager.java中写出查询和更新的方法,在sql语句对数据库进行操作的时候会根据sql语句的不同,参数也会不同,所以要在这里设置PrepareStatement对象中sql语句中的参数的方法,配置参数的代码如下:private void setPrepareStatementParams(String sql, Object params)throws SQLExceptionpstm = conn.prepareStatement(sql); / 获取对象if (params != null)for (int i = 0; i params.length; i+) / 遍历参数列表填充参数 pstm.setObject(i + 1, paramsi); 执行查询操作是数据库操作的核心功能,代码如下:public ResultSet executeQuery(String sql, Object params)throws SQLException / 执行查询数据库接口ResultSet rs = null;manager.setPrepareStatementParams(sql, params); / 填充参数rs = pstm.executeQuery(); / 执行查询操作return rs;更新数据库的代码如下:public boolean executeUpdate(String sql, Object params)throws SQLException boolean result = false;manager.setPrepareStatementParams(sql, params); / 填充参数pstm.executeUpdate(); / 执行更新mitChange();result = true;return result; 4)服务器端的核心功能就是接收手机客户端发过来的指令,获得参数对数据进行操作,然后返回json格式的数据给手机客户端,这里面的数据交互所用到的技术是servlet技术,前面已经在web.xml文件中已经对各个servlet进行了配置。 这里以接收客户端发送过来的发表评论PostCommentServlet.java的指令为例,进行说明,因为其他的操作指令类似,区别在于参数的获得和json数据的生成,下面进行详细代码的介绍。 request.setCharacterEncoding(iso-8859-1)因为从手机客户端传过来的参数的编码是“iso-8859-1”,所以服务器端接收数据是设置格式编码为一致。发送评论的时候手机客户端会向服务器传递三个参数,所以我们要接收者三个参数:String nidStr = request.getParameter(nid); String region = request.getParameter(region);String content = request.getParameter(content);接收到的三个参数都是String类型的数据,因为nid是int类型,所以要对其进行转换,这里用到先前提到的工具类TextUtility.java: int nid = TextUtility.String2Int(nidStr);参数content代表的发表评论内容,参数region代表的是地域,它们都有可能是中文、英文以及数字,因为“iso-8859-1”并不支持中文,所以这里要将它们转换成“utf-8”的编码格式,这样才不会出现乱码的情况,这里同样是用到TextUtility.java这个工具类,转换如下:region = TextUtility.toUTF8(region); content = TextUtility.toUTF8(content);在获得参数以后,需要调用CommentDAO.java中的addComment方法,将参数添加进去。public void addComment(int nid,String ptime,String region,String content) throws SQLExceptionsql = INSERT INTO t_comment (nid,ptime,region,content) VALUES Object params = new Object nid, ptime, region,content ;manager.connectDB();manager.executeUpdate(sql, params);manager.closeDB(); 在增加成功之后,要返回一个成功的json数据给客户端。其他的servlet类的操作原理与上述类似,这里就不一一累赘了。- 32 -第四章 系统测试4.1 软件的测试软件测试的目的,第一个是确认android新闻客户端是否能运行,其一个方面就是确认软件是否完成了我先前设计的那些功能。第二个是提供信息,比如提供给我回馈信息,看看在开发的哪些步骤上面能够有精简,能够有提升。第三个是测试不仅是在测试这个新闻客户端的本身,而且还包括了整个的开发过程。如果在这个新闻客户端开发完成后出现了很多问题,那就说明了开发的过程还存在漏洞。4.2测试与实现的结果及说明 1)采用的真机进行测试 在工程名“最爱新闻”上点右键,然后选择“Run As”或者点击菜单栏上面的按钮,然后选择“Android Application”。 出现如下图4-1所示: 图4-1 选择测试工具图 为什么要用真机来做测试,因为用户都是用的真机,而且选择用模拟器来做,有两点弊端。 (1)模拟器反应速度太慢 (2)测试效果不如在真机上看的方便 2)启动手机新闻客户端 选择屏幕上的“最爱新闻”如下图4-2:图4-2 新闻页面的图标 3)进入到载入界面如下图4-3所示: 图4-3 载入界面效果图4)然后就是显示主要新闻界面的内容了,界面显示如前面设计的简单界面加以样式修饰,界面包含软件名称、刷新按钮、新闻分栏、栏目下一栏的按钮、新闻列表和加载更多按钮,所有的新闻放在一个ListView里面界面只会显示六条新闻,滑动界面可以查看更多的新闻,点击加载更多按钮可以加载出更多的新闻加入ListView显示在界面上,具体效果如下图4-4所示: 图4-4 主新闻页面效果图5)点击新闻列表中的某一条新闻,选择查看新闻详细信息,因为在主新闻的页面只能看到新闻的预览内容,新闻的详细页面能够看到新闻的标题,详细信息,发表人和发表时间,在上面的新闻分栏的右边还能看到评论的数目信息,点击新闻的数目的信息能够看到该条新闻的具体评论信息,具体效果如下图5-5所示: 图4-5 详细新闻页面效果图 6)点击跟帖数目,进入评论界面,界面显示的就是该条新闻的评论信息,每一条评论信息包含发表人的地点,内容和评论时间,然后再加入一条评论与左图进行对比,效果如下图4-6所示: 图4-6 新闻评论页面效果图测试小结:经过一系列的测试,这款新闻客户端软件基本完成了预期的功能,并且系统的稳定性也较好。 第五章 总结与展望5.1 总结 经过数月的不懈努力,Android平台新闻客户端软件终于完成了,用户可以通过这款新闻客户端了解新闻时事,对于Android平台的开发需要用到很多Java的基础知识,在这方面Java语言带给我了很多的方便。在整个开发设计过程之中,我学习到了很多的Android平台的知识,比如Android的UI的设计优化、样式的的设计、Activity、Service、BroadcastReceiver、ContentProvider等四大组件的运用,还有对Eclipse、Tomcat、Mysql等开发工具的熟练使用。 虽然软件相比于已经上线的新闻客户端软件还有一定的差距,但是这并没有打击我对于Android平台开发的兴趣,反倒这是一件激励我的事情,我从中发现了我很多不足的方面,然后可以通过更加认真地学习,掌握更多先进的编程技术,设计出更系统更好用的Android软件。5.2 展望 经过了对本软件的设计和实践,将老师在课堂上和自己在课外时间学习的知识做了一个总结。一方面有做的很好的地方,另一方面同样也存在着有缺陷的地方。这是为我们马上毕业工作敲的一个警钟。学校学习到的知识虽然可能能用在工作中的并不会很多,但是我们在学校学到的是学习方法,因为不管在任何阶段,人总是需要不停地学习。在以后的工作和学习当中,我将保持积极认真的态度,遇事谨慎,仔细分析,以一颗永不停歇的心来面对人生,在软件开发这份职业上,需要充分锻炼自己的思维与敏锐,因为软件开发更新换代是十分迅速的,想不被淘汰就不能停下学习的脚步。参考文献1 肖云鹏,刘宴兵. Android程序设计教程M.清华大学出版社,2013-042 张荣. Android开发与应用M.人民邮电出版,2014-023 王向辉,张国印,赖明珠. Android应用程序开发M.清华大学出版社,2012-054 赵常松. Android应用程序开发与典型案例M.电子工业出版社,2012-105 高凯,仇晶. Android智能手机软件开发教程M. 国防工业出版社,2012-066 孙卫琴 编著 .JAVA面向对象编程M.电子工业出版社,2009-77 张帆 编著 .Java范例开发大全M.清华大学出版社,2010-6-18 杨春花,俞黎敏.Effective Java中文版M.机械工业出版社,2009-1-110 李刚. 轻量级Java EE企业应用实战M.电子工业出版社,2008-11-111(美)塞若贝茨.Head First Java(中文版)M.中国电力出版社,2007-2-112 张孝祥,张红梅.JavaScript网页开发M .清华大学出版社,2004-1113 张孝祥.深入体验Java Web开发内幕M.电子工业出版社,2006-10-114 张孝祥.深入体验Java Web高级特性M .电子工业出版社,2007-1215 俞东进,任祖杰Java EE Web应用开发基础M.电子工业出版社,2012-616 求是科技.Java数据库系统开发实例导航J.人民邮电出版社,2004-5致 谢感谢我的导师谢钟扬老师,他尽心尽责、一丝不苟、兢兢业业的作风一直是心目中的学习榜样;他循循善诱的教导和和不厌其烦的教导给予了我很大的帮助,可以说我的毕业设计没有谢钟扬讲师,就完不成。大学三年里,班主任教导了我们很多知识,不止学术方面,更多的是为人方面的思想。 感谢我们的软件学院的老师,这三年来学院的老师们教导给我们的知识,没有他们的耕耘,哪会有如此丰富的收获。他们教导出来的学生,个个富有责任心。没有这些老师三年来的知识灌输,我们的毕业设计就一点都不会做啊!这篇论文的隽写,老是重复要求我们改了三次,那是一件那么庞大的工作量啊,每次退回来都使我的论文一步步的完善,而辅导员以开朗的个性和宽容的态度,帮助我们很快的融入了这个班级里。 感谢我的室友们,和舍友都相处的非常融洽。大家都是从不同城市远奔而来,最后有缘聚在一起,难道我们不该珍惜这段情缘吗。是你们给予了我家一般的温暖,以及一直以来的无怨无悔的帮助。三年了,仿佛就在昨天。在大学的三年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。真是一场非常难的友谊啊,今后我们都会继续保持这份友谊。只是今后大家就很难在一起了,每逢佳节,我们都会聚一起吃一顿丰盛的饭局,开开心心的放荡一天,诠释我们的友谊。不过没关系的,大家各奔东西,每个人都有自己的人生计划,我们能做的就是为你们送上最真挚的祝福,祝你们人生旅途披荆斩棘,有空就大伙再聚一聚,我永远都不会忘记我们共同度过的那段美好大学时光。 感谢我的父母,你们这么辛苦的养大我,总是把最好的留给我,我都历历在目,一点一滴的感激的保存在我心里,我真是觉得很幸福,即使家里贫穷点都没关系,只要今后继续跟你们在一起,我就心满意足。为此你们都不要那么照顾我了,我长大,我成熟了,在你们眼里我可能永远都是那个长不大的小孩,但我也能成长成一名独断一面的大人,你们儿子的心愿就是你们能健健康康的生活下去,我一定会努力奋斗,令你们过幸福美好的日子。 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友寄予我无言的帮助,在这里请接受我诚挚的谢意。附录A初始化新闻界面控件和变量:private int cid;/新闻IDprivate ArrayListHashMap newsData;/新闻列表private SimpleAdapter newsListAdapter;/定义新闻栏目适配器private ListView newslists;/新闻列表的ListViewLayoutInflater layoutinflater;Button titlebar_refresh;/刷新按钮ProgressBar loadnews_progress;/进程提示框private String mCatName;private ListHashMap categories;获取新闻的代码:TextView categorytitle;for (int i = 0; i parent.getCount(); i+) categorytitle = (TextView) parent.getChildAt(i);categorytitle.setTextColor(0xffadb2ad);categorytitle.setBackgroundDrawable(null);categorytitle = (TextView) v;categorytitle.setTextColor(Color.WHITE);categorytitl.setBackgroundResource(R.drawable.categorybar_item_background);if (newsListAdapter = null) Toast.makeText(MainActivity.this, 网络连接失败, 0).show();return;newsListAdapter.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司消防安全培训通知课件
- 《红楼梦》阅读指导课件
- 新课标幼儿园解读
- 胃管注意事项与护理规范
- 深化人才发展体制机制改革解读
- 慢性肾功能衰竭患者的护理
- 每季度科室护理质控报告
- 泥石流工作总结
- 2025房屋租赁合同样本 房屋租赁合同范本
- 公司晨会课件
- 2026中国银行股份有限公司上海分行计划招聘550人考试参考题库及答案解析
- ERCP护理题库及答案解析
- 2025年百里香酚行业研究报告及未来行业发展趋势预测
- 2025年网络信息安全技术岗位专业知识试卷及答案解析
- 2025四川广元市园区建设投资集团有限公司招聘13人考试模拟试题及答案解析
- 检验员技能测试题及答案
- 化学原电池教学课件
- 2025四川省水电投资经营集团有限公司所属电力公司员工招聘6人考试参考试题及答案解析
- 新疆劳动就业白皮书课件
- 视觉障碍老人护理指南
- 宠物医院建设方案(3篇)
评论
0/150
提交评论