上一篇我们对本项目需要使用到的开源库做了简单使用介绍,接下来进入正轨。
网络传输
我们在util中创建HttpUtil来进行网络的传输
public class HttpUtil {
public static void sendOkHttpRequest(String address, okhttp3.Callback callback) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(address).build();
client.newCall(request).enqueue(callback);//回调方法
}
}
使用litepal创建并操作数据库
上一篇我们已经在使用litepal的介绍中,把数据库创建好了。我们是在db包下面创建了Province,City,County三个类,也就是三个表,接下来就是如何操作数据库。
我们在util包中创建一个工具类Utility,
主要任务是:向服务器发送请求,将接受到的Json数据进行解析后存储到相应的数据库中,代码比较长,要耐心看:
//解析服务器的数据并存储到数据库中
public class Utility {
//json={"id":1,"name":"北京"}
public static boolean handleProvinceResponse(String response) {
//判断服务器返回的数据是否为空
if (!TextUtils.isEmpty(response)){
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
//创建记录
Province province = new Province();
JSONObject object = jsonArray.getJSONObject(i);
province.setProvinceCode(object.getInt("id"));
province.setProvinceName(object.getString("name"));
province.save();//存储到数据库
}
return true;
} catch (JSONException e) {
e.printStackTrace();
}
}
return false;
}
//城市
public static boolean handleCityResponse(String response, int provinceId) {
if (!TextUtils.isEmpty(response)) {
try {
JSONArray jsonArray = new JSONArray(response);