阶段一:通过网络请求,获得并解析JSON数据(天气应用)
“阶段一”是指我第一次系统地学习Android开发。这主要是对我的学习过程作个记录。
在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用。即使功能很简单,但我还是想把它做成一个相对完整的应用。这样的话,像以前想到什么就做什么,显然是不行的,很容易就乱了。所以我就琢磨了一下,弄个什么,让自己的思路变得更加清晰,仅此而已。
经过一些思考和总结之后,我觉得可以是这么一个流程:
第一步:想好这个应用要实现什么功能,并罗列出来,然后就开始写代码,实现这些功能
说明:(1)对于这个模型的具体实现步骤,不必写出来,但要了然于心。在第二步优化的时候,就可以根据这个模型看看那部分可以优化。
(2)在做这一步时,不要太在意UI,只要实现所需的控件和基本样式就可以了。
这一步完成之后,带有核心功能的应用就出来了。
第二步:优化
这里的优化分两部分,“主要”指的是应用本身所要实现的功能和其UI界面,“其它”指的是所有应用都有的,都应该注意的,是共性问题,例如文字、图片、间距等怎样适配各种手机屏幕,设备旋转对页面产生的影响,记录页面状态,用户和系统的操作对应用的生命周期产生的影响等。相信还有更多的地方需要思考,留意。只是我现在只能想到这些。另外,随着深入地学习和不断地练习,应该会有很多地方,在第一步时已经注意到并完善了。
这一步完成之后,应用就相对完整了。
接下来,就以我的情况来做分析:
一、基本模型
而这里,我的概括说明是:
(1)在EditText上输入城市名,单击“确认”按钮后;
(2)调用自定义类的方法,把EditText的内容转为拼音;
(3)将API地址和城市名拼音拼接,传给AsyncTask的自定义子类,在其doInBackground方法中实现“发送请求、获取网络数据、解析并存储所需数据”的功能,在其onPostExecute方法中实现“显示数据”的功能;
(4)用Handler设置每过5分钟,就执行一次(3)的操作,来达到“自动刷新”的效果;
(5)单击“刷新”按钮,也是重复(3)的操作,来完成“主动刷新”的功能;
这不是详细说明,而是概括的,因为我也尝试过这样写,但真的写不下去,没写多少我就感到要吐了,真的很繁琐,所以这里只是简单地做个例子。
另外,由于这个接口是免费的,所以国内的城市只能换成拼音发送,国外的城市没访问过。还有关于自动定位的,我原打算是自动获取手机当前的经、纬度,然后再传到API获取其地址。而百度地图也有这个免费的API服务,但我在申请密钥时遇到点麻烦,没弄成,而且关于定位这块还是比较不理解。所以这部分先搁置。
有了清晰的思路和规划之后,就可以开始写代码了:
这里我没有贴出完整的代码,只把核心部分贴出来。
后台处理网络请求和解析数据
输入城市名、启动自动刷新和主动刷新功能
结果是这样子的:
最新文章
- flex acionscript png图片去除多余空白,生成合适大小图片
- 利用FSO取得BMP,JPG,PNG,GIF文件信息(大小,宽、高等)
- touches,motion触摸事件响应
- Android应用去掉标题栏的方法
- CSS学习笔记:文本换行显示(word-wrap)
- 给你的网站免费配置上 HTTPS 证书
- Android截屏的几种实现
- R贡献文件中文
- React使用Mobx管理数据
- ffmpeg相关函数整理
- Win7 指定以某个用户运行某个程式
- Android-硬件加速
- BZOJ2819: Nim 树链剖分
- Java之初学异常
- javascript进行遍历
- 【网络文摘】Androidguy:当你的才华还无法撑起你的野心时,那么应该静下心来学习
- Nginx的启动与停止,重启
- BZOJ2314 士兵的放置
- Spring学习(六)——集成memcached客户端
- Vyatta 网络操作系统
热门文章
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
- 机器指令翻译成 JavaScript —— 终极目标
- 疯狂的JSONP
- Win下必备利器之Cmder
- salesforce 零基础学习(五十九)apex:param使用以及相关的疑惑
- iOS 之UITextFiled/UITextView小结
- 【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据
- 【Win 10应用开发】手动调用WCF服务
- .NET Core的文件系统[1]:读取并监控文件的变化
- 通过一个实例理解 offsetLeft,offsetTop; offsetWidth , offsetHeight