不会github 百度网盘链接: http://pan.baidu.com/s/1pKWU9JX 密码: 1ffg
2条回答 默认 最新
- Newbie丶Chen 2016-11-06 09:48关注
首先 赶快去学下Git版本控制然后连接Github,很简单的。
其次 闪退是你少加了setContentView(R.layout.choose_area); /*布局都没加载进去*/
还有就是楼主的JsonReader的语法是错误的我修改了下public class Utility { private static SimpleWeatherDB sSimpleWeatherDB; public static boolean handleResponse(SimpleWeatherDB simpleWeatherDB, InputStream in) { /*原先是 simpleWeatherDB = simpleWeatherDB*/ sSimpleWeatherDB = simpleWeatherDB; JsonReader reader = new JsonReader(new InputStreamReader(in)); boolean flag = false; try { reader.beginObject(); while (reader.hasNext()) { String nodeName = reader.nextName(); if (nodeName.equals("resultcode")) { /*添加了reader.nextString(),原因是必须获取name的value,否则报错*/ Log.d("Tag","resultcode"+reader.nextString()); flag = true; } else if (nodeName.equals("result") && flag) { saveAreaToDatabase(reader); } else { reader.skipValue(); } } reader.endObject(); //添加了:关闭流 reader.close(); return true; } catch (Exception e) { e.printStackTrace(); } return false; } /** * 保存到数据库 */ private static boolean saveAreaToDatabase(JsonReader reader) { String provinceName = null; String cityName = null; String districtName = null; List<String> provinceNames = new ArrayList<>(); List<String> cityNames = new ArrayList<>(); boolean changedProvince = false; boolean changedCity = false; int provinceId = 0; int cityId = 0; int districtId = 0; Province previousProvince = new Province(); City previousCity = new City(); try { reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); while (reader.hasNext()) { String nodeName = reader.nextName(); if (nodeName.equals("province")) { provinceName = reader.nextString().trim(); if (!provinceNames.contains(provinceName)) { provinceNames.add(provinceName); changedProvince = true; provinceId++; } } else if (nodeName.equals("city")) { cityName = reader.nextString().trim(); if (!cityNames.contains(cityName)) { cityNames.add(cityName); changedCity = true; cityId++; Log.d("Utility", "changedCity"); } } else if (nodeName.equals("district")) { districtName = reader.nextString().trim(); } else { reader.skipValue(); } } reader.endObject(); if (changedProvince) { Province province = new Province(); province.setId(provinceId); province.setProvinceName(provinceName); previousProvince = province; sSimpleWeatherDB.saveProvince(province); changedProvince = false; } if (changedCity) { City city = new City(); city.setId(cityId); city.setCityName(cityName); city.setProvinceId(previousProvince.getId()); previousCity = city; sSimpleWeatherDB.saveCity(city); changedCity = false; } District district = new District(); districtId++; district.setId(districtId); district.setDistrictName(districtName); district.setCityId(previousCity.getId()); sSimpleWeatherDB.saveDistrict(district); } reader.endArray(); return true; } catch (Exception e) { e.printStackTrace(); } return false; } }
还有数据库:
/** * 从数据库中读取城市下所有的区县信息 */ public List<District> loadDistricts(int cityId) { List<District> list = new ArrayList<>(); Cursor cursor = db.query("District",null,"city_id=?", new String[]{String.valueOf(cityId)},null,null,null); if (cursor.moveToFirst()) { do { District district = new District(); district.setId(cursor.getInt(cursor.getColumnIndex("id"))); //这里应该是名字写错了,原先是city_name district.setDistrictName(cursor.getString(cursor.getColumnIndex("district_name"))); district.setCityId(cityId); list.add(district); } while (cursor.moveToNext()); } if (cursor != null) { cursor.close(); } return list; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 求一段fortran代码用IVF编译运行的结果
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧
- ¥15 #MATLAB仿真#车辆换道路径规划