coolWeather (三)
2015-10-21 11:20
267 查看
coolWeather (三)
创建一个用于解析和处理服务器返回固定格式的数据的工具类。/** *解析和处理服务器返回的省级数据 **/ public synchroinized static boolean hanleProvincesResponse(CoolWeatherDB coolWeatherDB, String response){ if(!TextUtils.isEmpty(response)){ //将,作为切割字符串的标识 String[] allProvinces = response.split(","); if(allProvinces != null && allProvinces.length > 0){ //遍历出每一个字符串 for(String s: allProvinces){ String[] array = s.split("\\|"); Province province = new Province(); province.setProvinceCode(array[0]; province.setProvinceName(array[1]); coolWeatherDB.saveProvince(province); } return true; } } return false; }
简单梳理下代码逻辑
进入chooseActivity的界面调用queryProvinces()方法
1.调用coolWeatherDB的loadProvinces()方法:获得所有省份的集合
1.如果数据库里有这些数据
1.则先将dataList中的数据清楚,调用dataList.clear()
2.通知adapter数据已经发生改变
3.currentLevel = LEVEL_PROVINCE;
2.如果数据库里没有这些数据
1.调用queryFromServer();从服务器端获取省份信息数据
1.进行地址拼装
2.调用showProgressDialog();显示读取进度
3.调用HttpUtil。sendHttpRequest();
1.开启一个线程用于网络请求操作
2.根据传入的网络地址发起网络请求,通过接口将获得的数据对外提供出去
如果请求成功
1.执行接口的onfinish()方法。
1.根据type类型,决定使用何种方法处理接口提供地数据
1.type类型为province时,调用工具类下的handleProvincesResponse()方法。
1.通过split方法,切割字符串,将数据解析出来,并保存到数据库中去
2.type类型为city时,调用工具类中的handleCitiesResponse()方法。
1.同上
2.如果成功写入数据库中。同过runOnUiTread()方法回到主线成处理逻辑,再次调用queryProvince()。
//显示省份信息逻辑结束
listview实现点击事件
利用currentLevel 来组织业务逻辑
相关文章推荐
- Block - 5
- java 环境搭建
- 接口应用——策略模式
- 3.2、BI之SSIS之简单ETL包开发
- Tomcat源码分析——请求原理分析(中)
- 参数关键点和return返回多个(伪多个)值问题
- Vim提示E325(锁机制)
- 如何对待Release与Debug运行结果不一致
- 从一个xib文件中加载另一个xib文件
- Ubuntu系统下bash和dash的区别(修改默认sh为bash)
- lwip协议栈里面回调函数的使用
- 3.1、BI之SSIS之基础包的创建
- 文章标题 关于MySQL卸载几点注意事项
- IOS根据路径读取文件大小
- 关于事务的简单理解
- mavlink解析
- matlab 计算大型距离方阵,distance matrix
- [Yii] Yii::log()和Yii::trace(),日志的使用
- eclipse部署maven web项目到tomcat服务器时,没有将lib、web.xml复制过去的解决办法
- Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory