“阶段一”是指我第一次系统地学习Android开发。这主要是对我的学习过程作个记录。

在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用。即使功能很简单,但我还是想把它做成一个相对完整的应用。这样的话,像以前想到什么就做什么,显然是不行的,很容易就乱了。所以我就琢磨了一下,弄个什么,让自己的思路变得更加清晰,仅此而已。

经过一些思考和总结之后,我觉得可以是这么一个流程:

第一步:想好这个应用要实现什么功能,并罗列出来,然后就开始写代码,实现这些功能

说明:(1)对于这个模型的具体实现步骤,不必写出来,但要了然于心。在第二步优化的时候,就可以根据这个模型看看那部分可以优化。

(2)在做这一步时,不要太在意UI,只要实现所需的控件和基本样式就可以了。

这一步完成之后,带有核心功能的应用就出来了。

第二步:优化

这里的优化分两部分,“主要”指的是应用本身所要实现的功能和其UI界面,“其它”指的是所有应用都有的,都应该注意的,是共性问题,例如文字、图片、间距等怎样适配各种手机屏幕,设备旋转对页面产生的影响,记录页面状态,用户和系统的操作对应用的生命周期产生的影响等。相信还有更多的地方需要思考,留意。只是我现在只能想到这些。另外,随着深入地学习和不断地练习,应该会有很多地方,在第一步时已经注意到并完善了。

这一步完成之后,应用就相对完整了。

接下来,就以我的情况来做分析:

一、基本模型

而这里,我的概括说明是:

(1)在EditText上输入城市名,单击“确认”按钮后;

(2)调用自定义类的方法,把EditText的内容转为拼音;

(3)将API地址和城市名拼音拼接,传给AsyncTask的自定义子类,在其doInBackground方法中实现“发送请求、获取网络数据、解析并存储所需数据”的功能,在其onPostExecute方法中实现“显示数据”的功能;

(4)用Handler设置每过5分钟,就执行一次(3)的操作,来达到“自动刷新”的效果;

(5)单击“刷新”按钮,也是重复(3)的操作,来完成“主动刷新”的功能;

这不是详细说明,而是概括的,因为我也尝试过这样写,但真的写不下去,没写多少我就感到要吐了,真的很繁琐,所以这里只是简单地做个例子。

另外,由于这个接口是免费的,所以国内的城市只能换成拼音发送,国外的城市没访问过。还有关于自动定位的,我原打算是自动获取手机当前的经、纬度,然后再传到API获取其地址。而百度地图也有这个免费的API服务,但我在申请密钥时遇到点麻烦,没弄成,而且关于定位这块还是比较不理解。所以这部分先搁置。

有了清晰的思路和规划之后,就可以开始写代码了:

这里我没有贴出完整的代码,只把核心部分贴出来。

后台处理网络请求和解析数据

输入城市名、启动自动刷新和主动刷新功能

结果是这样子的:

阶段一:通过网络请求,获得并解析JSON数据(天气应用)的更多相关文章

  1. andlua,andlua发送http请求,并解析json数据

    andlua发送http请求,并解析json实例 import'cjson'import 'http'--导入cjson库url = 'https://www.baidu,com'--设置urlHtt ...

  2. Retrofit网络请求库应用02——json解析

    PS:上一篇写了Retrofit网络请求库的简单使用,仅仅是获取百度的源码,来证明连接成功,这篇讲解如何解析JSON数据,该框架不再是我们之前自己写的那样用JsonArray等来解析,这些东西,我们都 ...

  3. 使用Charles进行网络请求抓包解析

    使用Charles进行网络请求抓包解析 0. 懒人的福音(⌐■_■)(破解版下载地址,记得安装java库支持) http://pan.baidu.com/s/1c08ksMW 1. 查看电脑的ip地址 ...

  4. Android网络之数据解析----使用Google Gson解析Json数据

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. 使用jQuery解析JSON数据(由ajax发送请求到php文件处理数据返回json数据,然后解析json写入html中呈现)

    在上一篇的Struts2之ajax初析中,我们得到了comments对象的JSON数据,在本篇中,我们将使用jQuery进行数据解析. 我们先以解析上例中的comments对象的JSON数据为例,然后 ...

  6. iOS多线程与网络开发之解析json数据

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. // 同步发送信息 2 NSData *data = [NSURLConnection sendSynchronousRequest:request r ...

  7. autojs,autojs 发送http请求,autojs 解析json数据

    如题,我这个就直接上代码吧 (function () { let request = http.request; // 覆盖http关键函数request,其他http返回最终会调用这个函数 http ...

  8. iapp,iapp http请求,iapp解析json数据

    iapp发送http请求,并解析json数据 //http操作 t() { s a = "http://wap.baidu.com/" //目标url hs(a, null, nu ...

  9. C# 解析json数据出现---锘縖

    解析json数据的时候出现 - 锘縖,不知道是不是乱码,反正我是不认识这俩字.后来发现是json的 '[' 字符转换的 网上搜了一下,说的是字符集不匹配,把字符集改为GB2312. 一.贴下处理jso ...

  10. IOS 解析Json数据(NSJSONSerialization)

    ● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...

随机推荐

  1. 【开源】知乎日报UWP 更新

    说明 大概十天之前我更新了一次APP,后来又仔细看了一下Store里的评论,发现还有几个地方没有改过来.于是前天晚上抽时间改了一下,顺便完善了一下UI体验. 没有看前面文章的童鞋可以看一下下面的链接: ...

  2. 【初探Spring】------Spring IOC(二):初始化过程---简介

    首先我们先来看看如下一段代码 ClassPathResource resource = new ClassPathResource("bean.xml"); DefaultList ...

  3. Leetcode 笔记 35 - Valid Soduko

    题目链接:Valid Sudoku | LeetCode OJ Determine if a Sudoku is valid, according to: Sudoku Puzzles - The R ...

  4. 如何从本地导入.nupkg文件

    买了本asp.net mvc4高级编程 里面的源码下载下来是.nupkg后缀的文件,不知道怎么引入到项目中, baidu无果,只好google,可怜我英语四级都难的人,不过所幸还是找到了方法: htt ...

  5. 自定义tabBar

    ★★★★自定义tabBar★★★★★★★ Demo下载地址:https://github.com/marlonxlj/tabBarCustom.git 前言: 有的时候需求要对tabBar进行自定义的 ...

  6. ERROR ITMS-90167: "No .app bundles found in the package"错误

    ERROR ITMS-90167: "No .app bundles found in the package" 出现如上错误请查检以下2个方向: 1.macOS Sierra 1 ...

  7. 解决js动态改变dom元素属性后页面及时渲染问题

    今天实现一个进度条加载过程,dom结构其实就是两个div <div class="pbar"> <div class="ui-widget-header ...

  8. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  9. C++程序员如何转Java

     C++程序员如何转Java 忙里偷闲,到了这个时间终于得空写一篇早想写的文章.其实本文的标题有些不太准确,C++程序员写Java代码不是说就非得转行写Java,抛弃C++,而只是多了一个选择而已.两 ...

  10. NSSortDescriptor 的使用

    NSSortDescriptor  是什么 ? 你可以将它看做是对一个排序规则的描述者  因为我们可以使用它来对我们数组中的对象进行排序操作 假设现在有这样一个需求: 数组里面有十个Person对象 ...