您的位置:首页 > 其它

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 来组织业务逻辑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: