会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 57自学网———旗下安卓自学网站专注Android系统开发教程!
当前位置:主页 > 软件开发 > 安卓开发 > 正文

kotlin语言开发酷欧天气(2)

时间:2017-06-08 16:48 来源:网络整理 作者:安卓自学网 阅读:

进入实战——开发酷欧天气(2)

本次博文,我将尝试使用kotlin语言对郭前辈的《第一行代码》中的最后那个实战项目“酷欧天气”进行重写

原书:14.5显示天气信息(p509)

上一章,我们已经把省市县数据“爬”到了app中,接下来我们要做的是“爬”天气预报信息,完成app剩下的功能

注册API

先去注册一下郭神提供的weather api(通过他获得在线的天气信息)

注册完成登陆后取得key,并测试访问一下是否能获得天气的json信息
?cityid=CN101190402&key=e970db87b1f24fb8a00555c6b361e8d4
(访问形式如上,参考原书:p522,地址中的参数cityid就是在上一章中County数据类里的weather_id)

获得数据:

这里写图片描述

这就说明已经可以成功获取最近的天气数据了!

不过这个json信息量有点大啊!==|||

数据类

上一章已经“吹”过了kotlin强大的data class(数据类)了,这是一种比java pojo类更加方便精简的类!

每一个你建立的POJO类文件最后都转换为一行代码而已

原作中,作者对gson实体类进行了分析(原书p509),可以使用他分析后创建的实体类(只需要转换成kotlin data class的写法)

不过对于这么复杂的json,我使用了在线json转POJO,将刚刚获得的天气json数据先转换为POJO类(这样使得实体类定义更加完整并且比自己一个个手写要块多了,工具是个好东西!)

json转POJO网址:

注意从网站上得到的只是java的POJO类,不是kotlin类(反正我还没有找到json直接转kotlin数据类的工具==|||求推荐)

进入Android Studio 3.0,在项目中新建包:weatherapi->新建datas.kt

这里写图片描述

为什么要新建一个包?
这个包是专门存放kotlin的天气数据类的,因为我发现郭前辈那个api获得天气json转换后的数据类与之前的我的City这个数据类有冲突(那个json里也有个City),故而将这次天气的数据类放到一个单独的包中,保证不会冲突,另外引入时需要注意,别引入了外面那个City类!

尝试转换

先新建一个City.java,这是一个POJO类文件,将json在线转换好的POJO类代码复制进来

这是那个在线json转换出来的City java POJO类:

package cn.cslg.weatherkotlin.weatherapi; public class City { private String aqi; private String pm10; private String pm25; private String qlty; publicvoidsetAqi(String aqi){ this.aqi = aqi; } public String getAqi(){ return this.aqi; } publicvoidsetPm10(String pm10){ this.pm10 = pm10; } public String getPm10(){ return this.pm10; } publicvoidsetPm25(String pm25){ this.pm25 = pm25; } public String getPm25(){ return this.pm25; } publicvoidsetQlty(String qlty){ this.qlty = qlty; } public String getQlty(){ return this.qlty; } }

(责任编辑:www.57zxw.com)

顶一下
(0)
0%
踩一下
(0)
0%