《毕业设计(论文)-基于Android平台新闻客户端设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于Android平台新闻客户端设计与实现.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、分类号 密级 U D C 编号 本科毕业论文(设计)题目 基于Android平台新闻客户端设计与实现 所 在 院 系 计算机学院 专 业 名 称 计算机科学与技术(嵌入式方向) 年 级 2012级 学 生 姓 名 学 号 指 导 教 师 二一六 年 四 月湖北第二师范学院本科毕业论文湖北第二师范学院毕业论文(设计)原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。
2、论文作者签名: 年 月 日I文献综述一、 概述随着PC互联网日趋饱和,智能手机的技术突破,移动互联网发生了井喷式的发展,各种智能终端伴随着通讯技术的进步成为新的阅读平台。其中,移动新闻客户端就是发展迅猛的一种新闻阅读应用。在激烈的市场竞争中,门户网站所开发的移动新闻客户端在下载量和受关注程度上都名列前茅,这与整个市场的发展现状以及门户网站移动新闻客户端的独特优势有密切关系。与传统新闻信息传播方式相比,新闻客户端在新闻呈现方式上,采用了图文并茂方式,既发挥了门户网站新闻报道方式上的专长,又使新闻阅读实现了真正意义上的“随时随地,想看就看”。本文将对移动智能手机平台,移动app,移动新闻客户端优势
3、进行分析和总结。二、 主题随着移动互联网的发展,我们的生活正在转变为“万物互联,移动为先”的智能生活方式。在任何一个角落,任何一个物体,只要能够连接上互联网,它就能够和我们的手机进行通讯,手机终端控制窗帘,空调,电灯已经是司空见惯。Android操作系统是由Google 2008年研发发布的一种开源操作系统,发布以来,一直受到人们的追捧,短短几年之间,它就已经在全球市场份额跃居第一。其平台的应用程序数量也是一直处于飙升状态,其中一些生活服务类的应用程序给我们的生活带来了莫大的便利。移动新闻客户端具备传播速度更快,覆盖范围更广,新闻内容更丰富,表现形式更新颖等优势,使得人们更倾向于选择这种阅读方
4、式。相比于传统的报纸,期刊等阅读方式,新闻客户端阅读更加符合绿色环保,健康生活的生活理念。三、 总结新闻客户端阅读,一种全新的阅读方式,它拥有传统阅读方式无法拥有的特点,这使得新闻客户端阅读方式必是大势所趋,一方面人们利用空闲时间,阅读知识,充实自己,另一方面,可以学习一些生活技能,了解时事,与时俱进。让阅读成为一种习惯,开发一款移动新闻客户端是十分有必要的。四、参考文献 1 (美)福思特 著,刘云鹏 译,XML入门经典(第五版),清华大学出版社 20132 孙卫琴, java面向对象编程. 电子工业出版社,2006.3 李刚,疯狂Java讲义(第三版),电子工业出版社, 20144 明日科技
5、 java从入门到精通(第3版),清华大学出版社,20125 李兴华,名师讲坛-Android开发实战经典,清华大学出版社,20126 李刚,疯狂Android讲义(第3版),电子工业出版社 20157 郭霖,第一行代码,人民邮电出版社,20148 徐宜生,Androide群英传,电子工业出版社,2015 9 任玉刚,Android开发艺术探索,电子工业出版社,2015 10 (美)霍斯特曼,科内尔著,周立新 译,Java核心技术 卷1,机械工业出版社 2014 11 鲍凯 Java入门123-一个老鸟的Java学习心得,清华大学出版社,2015 12 CSDN博客,Android ListV
6、iew异步加载图片乱序问题,原因分析及解决方案摘要新闻阅读基本是每个人生活必需的生活内容。在信息量越来越大的今天,这要求人们不断的摄取信息来充实自己。新闻阅读既能获取生活所需要的有用信息,也能通过新闻阅开宽视野和思维。但是新闻阅读多数只能通过固定的时间地点方式来获取,无法做到随时随地获取到新闻资讯,往往由于这些因素,错过很多对自己有用的信息。 为了解决以上的诸多不便,基于Android的新闻客户端也应运而生。通过对Google Android SDK API了解和学习,决定开发一款基于Android平台的新闻客户端应用程序,使Android用户可以方便,快捷的获取新闻资讯。本新闻客户端通过请求
7、网络,将服务器返回的json数据解析显示在用户的手机界面上。本文论述了Android移动新闻客户端的设计和开发实现过程。关键词:Android SDK json数据 移动新闻客户端 服务器AbstractNews content to read basic living necessities of life for everyone.In todays increasingly large amount of information, which requires people to continually intake information to enrich themselves.Ne
8、wsreader to obtain useful information both need to live, but also through the News open wide horizons and thinking.But most news reader can only be acquired by way of a fixed time and place, can not be done to get news and information anytime, anywhere, often as a result of these factors, miss a lot
9、 of useful information on their own.To solve the above inconvenience, Android-based news clients also emerged.Through the Google Android SDK API to learn and become familiar with, we decided to develop to develop an Android-based news client application that allows Android users to easily and quickl
10、y access news.The news client by requesting network, json parsing data returned by the server is displayed on the users mobile phone interface.This article discusses the Android news mobile client design and development implementation process.Key words: Android SDK json data News mobile client Serve
11、r11目 录第1章 绪论11.1 研究背景11.2 研究意义1第2章 新闻客户端开发环境及工具22.1 新闻客户端开发环境22.2 新闻客户端开发工具22.3 新闻客户端运行环境3第3章 基于新闻客户端的概要设计33.1 新闻客户端需求分析33.2 新闻客户端功能描述53.3 新闻客户端功能模块划分53.4 新闻客户端组成结构图63.5 新闻客户端操作流程图7第4章 新闻客户端开发所用技术84.1 JSON数据传输格式84.2 Gson类库84.3 SharedPreference文件存储9第5章 基于新闻客户端的实现135.1 Fragment碎片化135.4 总体结构和功能模块205.4.
12、1 侧边栏功能205.4.2 新闻模块功能215.4.2 图片模块功能225.4.3段子模块功能235.4.4设置模块功能24第6章 系统测试27第7章 总结28参考文献29致 谢30VII第1章 绪论1.1 研究背景窗体顶端如今,APP模式成为移动互联网最主要的应用形式。其中,移动新闻客户端凭借其丰富的资讯资源,实时的信息推送和方便的社区互动被越来越多的用户认可。在新媒体环境下,读者阅读时间和减少和碎片化趋势,预示着手机阅读的影响范围将会越来越广。手机阅读不仅能快速获取新闻信息,同时契合了碎片化时代读者的便捷性,片段化和主动性的需求。移动新闻阅读作为手机阅读的一种表现形式,采用将图片和文字内
13、容相结合的方式将新闻信息展现给用户,这个方式使用户可以查看不同来源的新闻信息以及不同层次的信息,以最大程度上了解事情的原始缘由,同时可以搜索时间间隔较远的新闻信息。移动新闻客户端市场已经成为移动媒体竞争的焦点,互联网各大门户网站纷纷使出浑身解数希望占领尽可能多的移动新闻客户端市场份额。根据数据显示,在中国,新闻客户端市场排名前三的客户端分别为搜狐新闻,网易新闻和腾讯新闻,其中,这些新闻客户端在功能上过于繁重,对Android的设备系统版本有一定的要求,没有很好地做到向下兼容低版本,在较低版本的手机无法成功安装这些新闻客户端。窗体底端1.2 研究意义虽然Google Android N已经出来了
14、,但是在中国,由于手机制造商系统升级缓慢,据友盟数据显示,大部分的手机的Android版本还是在在Android 4.4之下,一些公司为节省应用程序的开发成本,仅仅向下兼容到4.4版本,导致在低于4.4版本的手机出现提示“解析包错误”。为了使低版本的手机也能够成功安装新闻客户端,故本项目使用低版本的Android SDK API和Android-support-xxx支持库API开发新闻客户端,以满足较早手机用户或者系统无法升级的用户阅读新闻的需要。第2章 新闻客户端开发环境及工具2.1 新闻客户端开发环境不同于Web App,Android原生应用使用Android SDK框架提供的api,
15、基于java语言开发的,故需配置Java相关环境。(1) Windows (2) JDK 1.8(3) Android Studio(4) Genymotion模拟器和Android手机(5) Tomcat服务器(6) mindjet mindmanager,Microsoft Visio2.2 新闻客户端开发工具开发Android应用程序的编译器有很多,其中应用最广泛的即是Eclispse ADT和Android Studio,本项目采用的是Android Studio。Android Studio具有以下优势:(1) 非常强大,非常智能的代码提示和搜索功能。比如一个布局文件名字是layou
16、t_topfragment_listview_item_all.xml ,在eclipse中,必须要输入layout开头才能提示后面的,而在Android Studio里,只需要输入其中的任意一段,就会出现提示。再比如Android Studio会智能预测并给开发者最优的提示,每一次并非给出相同的提示结果。而是开发者最可能用的结果。(2) 颜色,图片在布局和代码中可以实时预览,编写布局可以实时预览UI效果。(3)跨工程移动,搜索,跳转。(4)支持更完善的插件系统。(5)Android Studio 基于IntelliJ IDEA,基于Gradle构建的,允许通过插件自定义构建逻辑。(6)And
17、roid专属的重构和快速修复。Genymotion模拟器提供Android手机的模拟环境,可以将编写的apk安装到该模拟器上,实时检查代码的逻辑正确与否,在没有特定版本的Android设备时,使用Genymotion模拟器可以方便的调试应用程序,本项目使用真机和模拟器相结合的方式完成项目的调试工作。2.3 新闻客户端运行环境该新闻客户端使用java语言编写的原生Android应用程序,仅运行Android系统平台,因项目的minSdk=9,即向下兼容到Android 2.3版本,故可以在Android 2.3和2.3以上的设备安装。2.4 新闻客户端运行效果的适配由于Android设备分辨率的
18、多样性,使得开发android应用程序时需要考虑android设备的屏幕适配问题。本项目在布局上没有使用绝对布局,组件的尺寸使用了不同分辨率的下的不同值,代码中设置的像素单位值都经过了平台的相应转换,使得在不同分辨率的设备上能够显示出一致的UI效果。第3章 基于新闻客户端的概要设计3.1 新闻客户端需求分析自从Google在Android 5.0中引入了全新的设计语言Material Design,国内外很多公司将其应用到各自开发的应用程序中,如Google+,OneDrive,印象笔记,知乎,网易。Material Design不再让像素处于同一个平面,而是让他们按照规则处于空间当中,具备不
19、同的维度,它强调根据用户行为凸显核心功能,进而为用户提供操作指引。由于本新闻客户端需要向下兼容到Android 2.3版本,故需要使用Material Design支持类库中的组件,使用到的支持类库有Android-support-v7,Android-support-v4。整个新闻客户端分为侧边栏和内容显示区域,默认情况下,侧边栏隐藏在屏幕左侧,用户可以通过点击Toolbar菜单按钮或者从屏幕左边缘向右滑动使左边侧边栏显示,内容显示区域分为上下两部分,上部分显示轮播图,自动播放显示最新的新闻信息,下部分显示新闻列表信息。主界面设计草图如3-1所示。图3-1 主界面设计草图通过点击侧边栏的不同
20、的item可以切换到不同类别显示界面,其中图片显示界面是采用支持类库中的RecyclerView显示瀑布流的效果。其设计草图如图3-2所示。图3-2 图片界面设计草图段子界面采用卡片式布局显示方式,该显示方式在垂直于屏幕方式有一定的厚度,看起来像是浮在屏幕上一样,更符合人的视觉效果。其设计草图如图3-3所示。图3-3 段子界面设计草图3.2 新闻客户端功能描述本新闻客户端由诸多Fragment共同显示的,启动该应用后,首先进入的欢迎界面SplashActivity,该界面主要是显示一些logo和预加载一些信息。延时3000ms或者用户触摸了屏幕后,程序自动进入主界面MainActivity,主
21、界面默认显示新闻类信息,在主界面用户可以通过左右滑动查看该类型下不同分类的信息。通过呼出侧边栏,点击其中不同的item,程序根据点击的position,主界面切换到不同的fragment显示不同类型的信息。点击侧边栏的设置选项,程序将会跳转到一个新的设置界面SettingActivity,用户可以点击其中的item,设置App的一些属性。例如:新闻正文的字号大小,图片显示的列数。3.3 新闻客户端功能模块划分根据新闻客户端的需求分析,总结出4个相互独立的模块,包括新闻模块,图片模块,段子模块,设置模块。这四个模块是通过点击滑出的侧边栏item来进行切换的。其中新闻模块下包含头条,娱乐,武汉,历
22、史,校园,科技,汽车等分类;图片模块下包含人物,美景,汽车,建筑等分类;段子模块下包含经典语录和搞笑段子;设置模块主要是由设置中心组成的,该设置是一个单独的界面,用户可以通过设置中心,对新闻客户端进行一些系统的设置。功能模块结构如图3-1所示。图3-1 新闻客户端模块图3.4 新闻客户端组成结构图在一些主流的Android手机应用程序中,为了能够在有限的空间内显示更多的组件和信息,通常其主界面显示风格主要分为:底部Tab标签 + 侧边栏和顶部indicator + 侧边栏。该新闻客户端采用了顶部indicator+侧边栏,结合手势滑动,显示更多的信息。侧边栏是由Android中使用非常频繁的应
23、用组件ListView来显示的。ListView组件不像其他组件直接设置内容就能显示,它通常要结合适配器Adapter一起使用,才能将数据显示在应用程序的界面上。ListView显示是Android中最典型的MVC用例。M:Model指的是要显示的数据,如封装数据的cursor,Array等;V:view即是要显示封装好的数据的ListView;C:controller即是Adapter,用来控制数据如何向ListView中显示,如ArrayAdapter,SimpleAdapter,CursorAdapter等。点击ListView中不同的Item,主界面FrameLayout显示不同的Fr
24、agment,如点击ListView的第0个item,主界面FrameLayou中显示NewsContentFragment;点击ListView的第1个Item,主界面FrameLayout显示PhotoContentFragment;点击ListView的第2个Item,主界面FrameLayout显示DuanziContentFragment;点击ListView的第3个Item,启动一个新的Activity界面,显示设置中心的内容。新闻客户端的组成结构图如 图3-3所示。图3-3 新闻客户端组成结构图3.5 新闻客户端操作流程图新闻客户端操作流程图,在Launcher界面点击该新闻客户
25、端icon,启动该应用,进入应用的欢迎界面,展现一些logo信息,当用户触摸屏幕或者等待3000ms,应用程序自动进入主界面,用户从屏幕左边缘向右滑动,呼出侧边栏,点击其中的不同的item,程序根据点击item的position,主界面切换到不同的fragment显示各自的信息。操作流程图如图3-3所示。图3-3 新闻客户端操作流程图第4章 新闻客户端开发所用技术4.1 JSON数据传输格式JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式语言,JSON是独立于语言的文本格式,这使得JSON具备了跨平台的特点,在解析速度方
26、面,JSON远远快于XML。在当前移动互联网的蓬勃发展中,JSON作为服务器和客户端间数据交换格式,正在变得越来越重要。JSON可用于描述的数据结构主要有以下两种:(1) 对象:表示用“”括起来的内容,数据结构为key:value,key:value,.的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,这个属性值的类型可以是数字,字符串,数组,对象等。(2) JSON对象:一般以开始,以结尾,在两者之间包含一系列非排序的名称/值对,每一名称/值对之间以分号隔开即可。4.2 Gson类库Gson是Google提供的用来在java对象和JSON数据之间进行映射的ja
27、va类库,可以将一个JSON字符串转换成一个java对象,或者反过来。GSON和其他现有的java json类库最大的不同是gson需要实例化实体类,而不需要使用annotation来标识需要序列化的字段。Gson部分常用解析方法: TfromJson(Stringjson, ClassclassOfT) This method deserializes the specified Json into an object of the specified class. TfromJson(Stringjson, TypetypeOfT) This method deserializes the
28、 specified Json into an object of the specified typeStringtoJson(Objectsrc) This method serializes the specified object into its equivalent Json representation.StringtoJson(Objectsrc, TypetypeOfSrc) This method serializes the specified object, including those of generic types, into its equivalent Js
29、on representation.4.3 SharedPreference文件存储SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。它提供了java常规的long、int、String等类型数据的保存接口,其保存的文件路径为data/data/应用包名/shared_prefs。用户卸载或清除该应用的数据时,该文件将会被自动删除。SharedPreference四种操作模式。(1) Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。(2) Cont
30、ext.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.(3) Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。(4) Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。SharedPreference读写方式:写:SharedPreferences sp = getSharedPreferences(String name, int mode);SharedPreferences.Editor editor = sp.edit();editor.put(key,value)
31、;mit();读:SharedPreferences sp = getSharedPreferences(String name, int mode); String value = sp.getString(String key, String defValue)4.4 xUtils框架xUtils 包含了很多实用的android工具,最低兼容android 2.2 (api level 8)目前xUtils主要有四大模块:(1) DbUtils模块:android中的orm框架,一行代码就可以进行增删改查;支持事务,默认关闭;可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约
32、束,CHECK约束等(需要混淆的时候请注解表名和列名);支持绑定外键,保存实体时外键关联实体自动保存或更新;自动加载外键关联实体,支持延时加载;支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。(2)ViewUtils模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;新的事件绑定方式,使用混淆工具混淆后仍可正常工作;目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。(3)HttpUtils模块:支持同步,异步方式的请求;支持
33、大文件上传,上传大文件不会oom;支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。(4)BitmapUtils模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;支持加载网络图片和本地图片;内存管理使用lru算法,更好的管理bitmap内存;可配置线程加
34、载线程数量,缓存大小,缓存路径,加载显示动画等.4.5 Android SDK框架Android是一种基于Linux的自由及开放源代码的操作系统,主要使用与移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android系统由linux内核层,系统运行库层,应用程序框架层,应用程序层组成。应用程序层使用应用框架层提供的接口,方法开发应用程序,Android系统架构图如图3-1所示。图3-1 Android系统架构图4.6 自定义View当Android原生的控件不能满足项目需要时,那就需要使用自定义控件,通常自定义控件有三种实现方式,继承View重写onDraw();
35、继承ViewGroup实现特殊的布局控件;继承已有的view控件。通过自定义的View组件,能够实现一些复杂实用的组件,在满足项目需要的同时,也提高了代码的复用性。本新闻客户端新闻页的轮播图CarouselView,是继承自ViewGroup,由于将轮播图的实现逻辑封装到了一个view类中,所以在新闻页中不用再重复编写实现逻辑,而只是在各自的布局文件中引入即可,提高了代码的内聚性,简易性,通用性和易维护性。显示网页的控件是使用的继承自原有控件类,在其初始化时添加水平进度条,在布局文件中引入时,即是带进度条的WebView控件。带RadioButton的Dialog使用继承自原有的Dialog类
36、,根据构造函数传入的参数,代码动态创建控件并添加到自定义的Dialog中,new 创建控件时,可以使用的不同的参数,创建出不同RadioButton个数不同的Dialog,同时注册的回调接口,使得创建不同的dialog在用户点击确定执行不同dialog各自的保存逻辑,大大提高了代码的复用性。4.7 三级缓存策略为提高用户的使用体验,避免应用程序在加载大量图片时出现OOM异常和节省用户的3G流量,通常需要对请求过的数据进行的一定内存缓存或sdcard缓存,使得用户下次在进入时,不开启流量也可以查看到已经请求过度额数据信息。在Android平台中,通常使用LruCache内存缓存和DiskLruC
37、ache磁盘缓存。LruCache主要原理是把最近使用的对象用强引用存储在LinkedHashMap中,并且把最近最少使用的对象在缓存值达到预定值之前从内存中移除。通过将LruCache和DiskLruCache结合使用可以很好地解决OOM内存溢出的问题。第5章 基于新闻客户端的实现5.1 Fragment碎片化5.1.1 Fragment介绍Fragment是Google在Android 3.0(API level 11)中引入的概念,其是为了解决不同屏分辨率的动态和灵活UI设计。Fragment的出现使开发者可以将Activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。在解
38、决平板和手机的布局适配问题上,fragment起着重要的作用。在fragment出现之前,在平板上显示类别分类和该类别下的详细信息,需要使用两个Activity显示,导致显示类别的Activity存在大部分的空余空间,降低了用户的使用体验,而在出现了fragment之后,只需在同一个Activity中添加两个fragment,一个fragment显示类别标题,另一个fragment显示该类别下的详细信息,不但使显示效果变好,而且更容易维护各自的生命周期。5.1.2 Fragment生命周期由于Fragment必须嵌入到Activity中使用,所以Fragment的生命周期和它所在的Activi
39、ty是密切相关的,与Activity生命周期非常相似。比如,如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。Fragment生命周期如图4-1所示。图4-1 Fragment生命周期5.1.3 Fragment与Activity交互(1) Activity传值给Fragment在Activity中创建Bundle数据包,调用fragment的setArguments(Bundle bundle)方法,将
40、Bundle数据包传给fragment,在fragment中调用getArguments方法得到传递过来的值。(2) Fragment传值给Activity在fragment中定义一个内部回调接口onItemListener,再让包含该fragment的activity实现该接口,当fragment添加到Activity中时,会调用fragment的onAttach(Activity activity)方法,在这个方法中检查参数activity是否实现了定义的接口,如果实现了,将activity强转成onItemListener的子类实例,并在fragment中点击item时,使用该子类实例调
41、用onItemListener中的回调方法,这样通过回调方法,就将fragment中的数据传递给了Activity。5.1.4 Fragment的使用由于Fragment是在Android 3.0中引入到Android SDK中的,所以在低于Android 3.0需要使用支持类库,即Android-support-v4。本新闻客户端项目中使用了该支持类库,即在build.gradle文件的dependencies中加入compile com.android.support:support-v4:22.1.1。Fragment添加方式有两种:在layout文件中直接声明fragment标签,以及
42、在代码中动态添加。抽取Fragment基类。public abstract class BaseFragment extends Fragment public AppCompatActivity mActivity; public View rootView; public BaseFragment() /* * fragment创建 * * param savedInstanceState */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); mActi
43、vity = (AppCompatActivity) getActivity(); /* * fragment初始化布局 * * param inflater * param container * param savedInstanceState * return */ Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) if (rootView = null) rootView = initBaseView(); return ro
44、otView; /* * fragment依附的Activity创建完成 * * param savedInstanceState */ Override public void onActivityCreated(Nullable Bundle savedInstanceState) super.onActivityCreated(savedInstanceState); initData(); setListener(); Override public void onDestroyView() super.onDestroyView(); if (rootView != null) (ViewGroup) rootView.getParent().removeView(rootView); public abstract View initBaseView(); public void initData() public void setListener() (4)新闻客户端Fragment继承,部分Fragment继承关系如4-2所示。图4-2 部分Fragment继承关系图5.2 ListView异步加载图