第一行代码酷欧天气开发详细总结
来源:互联网 发布:缺乏安全感怎么办知乎 编辑:程序博客网 时间:2024/06/09 23:20
首先声明一下,本人目前也是菜鸟一名,最近几天把郭神的第一行代码的那个实战项目学着做了一遍,也学到了不少东西,涉及的知识还是蛮丰富的,感觉自己的水平也有了点提高,至少我三个月前跟着第一行代码开发的时候还好是蛮多看不懂的,现在自学android开发已经快五个月了,不上课的时间有时间就学学,一路滚爬过来,终于把这个项目自己看懂了,代码也自己敲出来实现了一遍,酸甜苦辣自在心中,还记得曾经有几个地方的bug因为自己的粗心,调试了好几个小时才调试出来,成功把bug改好的那一刻我的内心的感觉无法言表,下面先总体概述一下本项目用到的知识点:
1 )git,相信你应该对这个名词并不陌生吧,如果你还比较陌生,不知道git有啥作用的话,就先跟着我的另一篇博客学学git的使用吧,[点我学习如何初步入门git](http://blog.csdn.net/aiyuan1996/article/details/52431134
2 )http网络请求
3)JSON数据解析
4)android UI
5 )sqlite数据库操作
6)service服务和BroadcastReceiver
先看一下中国天气网的天气API接口吧
http://www.weather.com.cn/data/list3/city.xml
不过没关系,右键查看网页源代码即可,我们能看见省名和相应的代号
不同省份之间以逗号分隔,省份之间以单竖线隔开,如何使用这些代号呢,例如20是湖北,那我们就在网址那一栏在city的20的后面加上20即可
如(http://www.weather.com.cn/data/list3/city20.xml),如下图
我们已经得到湖北省的市了,看见每个市也有一个相应的代号,以武汉为例,然后输入http://www.weather.com.cn/data/list3/city2001.xml
然后我们以江夏区为例,
http://www.weather.com.cn/data/list3/city200105.xml
会看见江夏区的天气代号,有了天气代号,我们就可以查看江夏区的天气情况了,
根据天气代号我们输入如下网址查看江夏区的天气情况
可能会出现乱码问题,我们只需把编码改成utf-8就ok了
能得到天气情况,然后在代码中通过json解析就可以了。
下面先给出效果图
项目布局包类图,在这里,我们采用了mvc(Model–view–controller)架构模式,为方便管理,我们要定义几个包,activity,db,model,receiver,receiver,service,util
其中activity包用于存放相关活动的类,db则是存放数据库相关的类,model则是存放模型相关的类,receiver则是存放所有广播接收器相关的类,service则是存放服务相关的类,util市工具类。
三级省市县的省级
三级省市县的市级
三级省市县的县级
随便点一个,查看天气
按下左上角的按钮,是回到省级页面,刷新按钮刷新天气
手机返回键连续按两次退出程序
CSDN下载地址:点我下载源代码
github下载地址:点我下载源代码
就开始我们的讲解的!(ps:代码中有很多打印语句,是我在测试的时候留下的,没删掉是因为如果有不懂的地方,这样调试起来也方便)
第一行代码酷欧天气开发(一)
- 第一行代码酷欧天气开发详细总结
- 第一行代码酷欧天气开发(一)
- 第一行代码酷欧天气开发(二)
- 第一行代码酷欧天气开发(三)
- 第一行代码酷欧天气开发(四)
- 第一行代码酷欧天气开发(五)
- 《第一行代码》之开发欧酷天气学习笔记
- 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(1)
- 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(2)
- 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(最终版)
- 第一行代码酷欧天气小升级!
- 阅读郭林《第一行代码》的笔记——第14章 进入实战,开发酷欧天气
- kotlin版的酷欧天气 (郭林大神的第一行代码第二版)
- 基于《第一行代码第二版》的天气app的扩展开发
- Android《第一行代码》项目实战之酷我天气阅读笔记
- 《第一行代码》读完总结
- 《第一行代码》扩展总结
- 《第一行代码》基础总结
- [LeetCode]Buy and Sell Stocks 买卖股票问题
- 老司机带你玩转web service
- 设计模式之工厂方法
- 【NOIP2016提高A组模拟9.9】运输妹子
- Java学习之Iterator(迭代器)的一般用法 (转)
- 第一行代码酷欧天气开发详细总结
- IIS7/8 出现HTTP 500内部服务器错误解决方案
- 成员函数的识别
- 关于卸载linux的方法
- Webpack 入门指迷
- 当移动端软键盘弹出时错位问题解决方案
- 排序(5)——堆排序
- Extjs5的Ext.each方法学习
- window 双网卡配置