不会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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么