【发布时间】:2014-01-25 12:38:59
【问题描述】:
我正在创建一个 SimpleExpandableListAdapter,但在没有大量代码的情况下无法将对象放入相应的组中。
布局是: [周一] - childGroup1 数据 [周二] - childGroup2 数据
我有一个 JSON 数组,它返回一个用户的课程列表,这些需要按天排序,并放入相应的可扩展标题中,但是我的代码很长,我想知道是否有更简单的方法这样做我可能忽略了?
我正在获取 JSON 对象,检查它的日期并将该课程的数据存储到日期组中。
我觉得我的编码方式太长了,正在寻找改进此代码的方法,以使其更具动态性。
//child data
List<List<HashMap<String, String>>> childData = new ArrayList<List<HashMap<String, String>>>();
List<HashMap<String,String>> childGroup0 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup1 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup2 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup3 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup4 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup5 = new ArrayList<HashMap<String,String>>();
List<HashMap<String,String>> childGroup6 = new ArrayList<HashMap<String,String>>();
for (int i = 0; i < jArray.length(); i++) {
JSONObject jObj = jArray.getJSONObject(i);
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("moduleName", jObj.getString("moduleName"));
hm.put("startTime",
(jObj.getString("startTime")).substring(0, 5));
hm.put("endTime",
(jObj.getString("endTime")).substring(0, 5));
hm.put("group", jObj.getString("group"));
hm.put("roomName", jObj.getString("roomName"));
hm.put("firstName", jObj.getString("firstName"));
hm.put("lastName", jObj.getString("lastName"));
switch (Integer.parseInt(jObj.getString("day"))){
case 0:
childGroup0.add(hm);
break;
case 1:
childGroup1.add(hm);
break;
case 2:
childGroup2.add(hm);
break;
case 3:
childGroup3.add(hm);
break;
case 4:
childGroup4.add(hm);
break;
case 5:
childGroup5.add(hm);
break;
case 6:
childGroup6.add(hm);
break;
}
}
childData.add(childGroup0);
childData.add(childGroup1);
childData.add(childGroup2);
childData.add(childGroup3);
childData.add(childGroup4);
childData.add(childGroup5);
childData.add(childGroup6);
【问题讨论】:
标签: java android json list hashmap