使用聚合数据开发新闻头条

首先看一下最终的实现效果

聚合数据官网

https://www.juhe.cn

注册登录。

登录之后进行申请数据。

会得到一个数据的接口文档,以及调用方式和参数(这些都是后台开发人员封装好的接口调用文档),Android开发人员只要会调用和使用即可。

进入个人中心

查看已经申请的数据,如果数据列表为空则代表没有申请的数据,请先申请数据。一定要看到appkey这个地方,这个appkey曾让作者找了好久。。。

查看数据接口的api文档

注意:

一定要学会看这样一个后台数据接口文档。

接口地址:就是我们android开发人员进行请求的URL地址

返回的格式:是后台开发人员给我们返回的数据格式,一般的格式为json或者xml格式

请求的方式:一般常见的方式为get或者post

请求示例:供开发者进行测试的URL地址和例子

请求参数:请求URL的时候需要携带的参数

返回的参数:返回的数据和结果码等等。

测试数据接口

复制请求示例的URL--http://v.juhe.cn/toutiao/index?type=top&key=APPKEY

把自己的appkey替换APPKEY,然后在浏览器地址栏中访问该地址,查看返回的数据是否为json数据。

后台数据的接口文档我们已经有了,其次就是需要在Android端进行请求后台数据接口,把数据显示在布局上。

Android端的网络请求方式有很多开源库供我们使用,当然你也可以使用Android原生自带的HttpsURLConnection进行请求。

我在项目中使用的是xutils3.0框架--有兴趣的同学,可以在github上下载其源代码进行深入的研究。

xutils3.0 github项目地址:https://github.com/wyouflf/xUtils.git

界面结构

首先介绍一下项目的界面结构。打开app第一个Activity为SplashActivity(欢迎界面),然后是MainActivity(主Activity)

SplashActivity

实际上就执行了一个简单的动画,具体的可以查看源代码。

MainActivity

主Activity为TabLayout+ViewPager+Fragment的结构方式。具体可以查看该项目的源代码,最后附项目的源代码。

Fragment

每一个Fragment都继承BaseFragment,因为只是一个简单的Demo,并且每一个子Fragment里面都是一样的布局,所以说,我就没有具体的去写每一个子Fragment里面的布局,我就直接在BaseFragment里面进行请求数据,填充内容了。

具体说一下BaseFragment

BaseFragment

该方法是创建BaseFragment的子类对象的一个静态方法。

mBaseView的布局文件如下

所有的子Fragment的都需要实现BaseFragment的initView方法,进行初始化各个的布局文件,进行把布局文件添加到这个FrameLayout里面。

本程序中使用ListView进行列表显示新闻列表。有兴趣的同学可以尝试把ListView用RecycleView进行替换。来显示新闻列表。

showUrlActivity

主要讲解一下这个Activity里面用到了一个WebView控件。WebView控件是Android的一个系统控件,主要功能是可以加载网页形式的页面,类似一个内置浏览器服务。有兴趣的同学可以了解一下腾讯的TBS浏览服务。微信内置的浏览器就是用的x5内核。

重要:解析数据!!必会技能

你能拿到后台的数据,但是不会解析,那么那些数据就是一堆垃圾。

解析xml文件数据,相信大家在课堂上已经学过了。

这里主要说一下解析json数据。

推荐大家使用一个解析json的开源库,那就是google的gson。

推荐大家使用一个AndroidStudio的插件:GsonFormat

gson解析json的代码示例:

首先你需要根据json数据串创建一个实体类。在json里面的语法“{}”代表一个对象(JSONObject),“[]”代表一个数组(JSONArray)。你可以根据json的格式自己来创建这么一个实体类。当然,如果你想快速开发,那么就使用gsonformat插件,新建一个实体类,然后在文件文件中右键

把你得到的json格式数据复制到中间的框中,点击ok就会自动生成实体类。

然后利用gson就可以解析json格式的代码了。

有些东西可能本文没有涉及到,大家可以向公众号后台进行回复提问。或者直接百度!

工欲善其事、必先利其器。你还在使用eclipse 开发android? nonono,是时候更新你的工具了!AndroidStudio3.0已经正式上线了,你不尝试一下吗?

其实android开发就是这样,发送请求,得到数据,填充界面。努力!共勉。

本文的项目的环境为AndroidStudio3.0+gradle4.1

本项目的码云地址:(作者推荐大家使用git进行版本管理)

https://gitee.com/pyfysf/JuHeDataDemo.git

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171211G0Y3K400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券