首先看一下最终的实现效果
聚合数据官网
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
领取专属 10元无门槛券
私享最新 技术干货