coolWeather (三)

coolWeather (三)

  1. 创建一个用于解析和处理服务器返回固定格式的数据的工具类。
/**
 *解析和处理服务器返回的省级数据
 **/
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;
}

简单梳理下代码逻辑

  1. 进入chooseActivity的界面
  2. 调用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 来组织业务逻辑
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值