一、作业题目
实现一个安卓新闻类App,最低支持安卓系统版本为5.1(minSdkVersion 为API 16 https://developer.android.com/guide/topics/manifest/uses-sdk-element.html )

二、作业描述
互联网科技的发展让新闻的传播从报纸、广播、电视等方式发展到了网页以及最近几年兴起的手机app客户端,人们获取新闻的方式变得异常容易。手机上的新闻app让大家随时随地掏出手机即可看天下事,手机新闻app不再是一个简简单单的新闻获取工具,许多app已经利用数据挖掘构建出了新闻推荐引擎,为用户提供个性化、更有价值的新闻,例如今日头条、天天快报等。

现在让我们也来尝试一下做一个新闻app!本次大作业的任务就是实现一款新闻获取的工具类软件,其中新闻数据采用的是腾讯网的rss,同学们根据相关rss数据和作业要求利用课上所学的Java和android开发知识实现一个新闻客户端即可。

三、接口描述
本次大作业需要开发的系统结构如图1所示,实现了新闻内容的抓取和存储;客户端从服务器拉取新闻,是学生需要完成的部分,包括新闻频道获取、展示和管理,新闻列表的获取、展示以及刷新,新闻收藏、分享等。

中文新闻所用的rss为:http://rss.qq.com/index.html ,需要简单了解rss相关知识。

四、具体实现
4.1 新闻列表
4.1.1 UI
APP主界面布局xml如下:

<android.support.design.widget.CoordinatorLayout
<android.support.design.widget.AppBarLayout
<android.support.v7.widget.Toolbar/ >
<android.support.design.widget.TabLayout/ >
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager/>
</android.support.design.widget.CoordinatorLayout>
其中CoordinatorLayout用于协调布局中的部件的滑动,AppBarLayout用于显示标题并添加菜单,ViewPager用于显示新闻列表。

ViewPager中包含多个Fragment,每个Fragment布局xml如下:

<android.support.v4.widget.SwipeRefreshLayout
<android.support.v7.widget.RecyclerView/>
</android.support.v4.widget.SwipeRefreshLayout>
其中SwipeRefreshLayout用于添加下拉刷新操作,RecyclerView中以垂直线性布局的方式显示新闻条目。

RecyclerView中的新闻条目布局xml如下:

即每个条目分为两行,第一行为新闻标题,以较大字体显示,第二行为新闻来源和发布时间,分别位于第二行左侧和第二行右侧,以较小字体显示。

4.1.2 功能实现
新闻列表中主要实现了以下功能:

下拉刷新获取新的新闻
该功能通过重载SwipeRefreshLayout中的onRefresh()功能实现。用户下拉页面会自动调用onRefresh()函数,app后台向服务器申请新闻数据,并更新后台的新闻列表;随后会调用Fragment的Adapter的notifyDataSetChanged函数,更新UI界面上所显示的数据。

上拉加载更多旧的新闻
该功能通过给RecyclerView添加SrollListener监测用户下拉动作,当列表下拉至接近最下端时,会向后台申请更多新闻数据,并调用notifyDataSetChanged函数更新UI界面上的数据。

新闻列表本地存储
该功能通过使用SQLiteOpenHelper类为app添加后台数据库,并在向服务器申请更新数据时将更新的数据放入数据库中。在app开启时会从数据库中取出新闻数据加载到内存中。

新闻是否看过的灰色标记
该功能通过新闻列表中ViewHolder的onClick函数实现。当用户点击某一新闻条目时,会更改该条目的颜色为灰色。同时,阅读标记也会被更新到数据库中,下一次打开程序时灰色标记不会消失。

新闻搜索
该功能通过主页面上的Menu中的条目点击实现。点击Menu中的search条目会弹出AlertDialog搜索框。搜索功能通过对后台新闻数据进行搜索实现,并将搜索到的新闻显示在search Fragment上。



完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:

https://www.write-bug.com/article/2995.html

[内附完整源码和文档] 基于Android Studio实现的新闻APP相关推荐

  1. [内附完整源码和文档] 基于Android的手机音乐播放器的设计与实现

    摘 要 随着Android系统和移动互联网的快速崛起,手机已经成为人们生活不可缺的一部分,在现代人的生活中,人们生活节奏的加快,生活压力越来越大,碎片化的时间越来越多,那么一个可以在碎片化的时间内调节 ...

  2. [内附完整源码和文档] 基于Android网络聊天室的设计与实现

    前 言 随着我国科技水平的提高和移动通讯的飞速发展与普及,人们通过移动网络可做的事情越来越多,人们之间的沟通不在局限于面对面的对话,人们通过手机可以很方便的上网并通过手机上的APP进行聊天这样既节省话 ...

  3. [内附完整源码和文档] 基于Android的移动手机端五子棋游戏APP的设计与实现

    一.项目概述 近年来,随着安卓手机的普及,安卓游戏成为广大用户关注的方向.五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏,主 ...

  4. 投票源码程序_[内附完整源码和文档] 基于JSP实现的影视创作论坛系统

    摘 要 随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评.解 ...

  5. java 最少使用(lru)置换算法_[内附完整源码和文档] 基于C#的可视化虚拟存储器管理(LUR算法)...

    一.目的要求 理解虚拟存储器概念,并掌握分页式存储管理地址转换和缺页中断的处理过程.用高级语言模拟请求分页式虚拟存储器的工作过程和页面置换算法LRU. 二.准备知识 2.1 分页式存储管理原理 在存储 ...

  6. [内附完整源码和文档] 基于JSP的网上订餐管理系统的设计与实现

    摘 要 随着科学技术与经济的快速发展,网络信息技术也有了显著的提升与进步,当今的社会是一个集数字化,网络化,信息化的,并且是以网络为核心的现代化社会.伴随信息互联网的高速成长,使得互联网应用也走进家家 ...

  7. [内附完整源码和文档] 基于JSP网上招聘系统的设计与实现

    摘 要 随着时代的发展,中国的互联网技术愈加成熟,已经有越来越多的社会群体开始学会使用互联网技术,整个社会正在朝着智能化.信息化的方向前进.有了互联网,用户便可以足不出户地利用互联网技术使得自己的生活 ...

  8. [内附完整源码和文档] 基于Jsp的百货中心供应链管理系统

    摘要 近年来,随着计算机技术的发展,以及信息化时代下企业对效率的需求,计算机技术与通信技术已经被越来越多地应用到各行各业中去.百货中心作为物流产业链中重要的一环,为了应对新兴消费方式的冲击,从供货到销 ...

  9. [内附完整源码和文档] 基于SSH网上商城的设计与实现

    摘 要 本文讲述了基于SSH框架的网上商城购物系统的设计与实现.所谓的网上商城购物系统是通过网站推广互联企业的商品和技术服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和订单处理功能. ...

最新文章

  1. sublime Text 开发工具
  2. 小谈EntityFramwork Code First实体更新后的数据库处理
  3. Linux内核网络数据包发送(三)——IP协议层分析
  4. SQL各种join用法
  5. 最优化学习笔记(五)牛顿法及拟牛顿法
  6. php对pdf关键字定位,如何在PDF文件中快速查找关键字
  7. 《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的基础知识...
  8. [JS3] 立即执行JS
  9. java中session对象及其常用方法
  10. 用深度学习做命名实体识别(五)-模型使用
  11. 生物信息常用文件格式
  12. Excel学习日记:L1-excel入门
  13. Laravel :Laravel、Symfony、 Zend 对比测试
  14. 卡巴斯基发布操作系统Kaspersky OS
  15. 自动控制原理《线性系统的时域分析》
  16. 交换机的重要技术参数
  17. 野蛮生长已到尽头 WiFi百家争鸣谁能破局
  18. 认识数据仓库建设意义
  19. 阿里终面:如何才能盛下最多的水?
  20. android语音识别技术

热门文章

  1. Java之数学工具包Math
  2. 2019pro与air怎么选_2020款MacBookAir高配和2019款MacbookPro13丐版买哪个?
  3. 其他国产品牌会用鸿蒙系统吗,鸿蒙系统发布,为什么没有看到其他国产品牌表态支持?...
  4. 联通开推首批千元四核智能机 峰值速率达21M
  5. Java基础入门知识
  6. 苹果爱奇艺会员怎么取消自动续费_淘宝省钱卡怎么取消自动续费?省钱卡有啥好处?...
  7. 【BLE】通知和指示的区别
  8. 为所有弹窗增加全屏切换功能
  9. eXo Platform开始从门户转向Web OS
  10. webshell提权教程小结