【发布时间】:2012-11-24 22:26:54
【问题描述】:
我的班级 Event 有很多不同的变量,例如 name、description、start time 和 end time,然后我有 Day 具有可变日期的类和这些 Events 中的 ArrayList。现在我想要Days 的ArrayList,并且每个Day 都应该包含同一天的Events。默认情况下,我得到事件列表,我需要根据这个列表创建日期。所有时间均采用 int unix timestamp 格式。
举例说明我追求的是什么:
Day 25.11
Event1
Event2
Event3
Day 26.11
Event1
Day 27.11
Event1
Event2
Event3
Event4
有我试过的代码没有工作结果:
private void getObjects(String url) throws JSONException, Exception {
JSONObject jsonObject = new JSONObject(new NetTask().execute(url).get());
JSONArray job1 = jsonObject.getJSONArray("events");
ArrayList<Event> events = new ArrayList<Event>();
Calendar calPrev = Calendar.getInstance();
boolean first = true;
for (int i = 0; i < job1.length(); i++) {
JSONObject myEventArray = job1.getJSONObject(i);
int start = myEventArray.getInt("start");
int end = myEventArray.getInt("end");
String name = myEventArray.getString("name");
String description = myEventArray.getString("description");
if(first){
calPrev.setTimeInMillis(start*1000L);
events.add(new Event(start,end,name,description));
first = false;
}else{
Calendar calCur = Calendar.getInstance();
calCur.setTimeInMillis(start*1000L);
if(calPrev.get(Calendar.YEAR) == calCur.get(Calendar.YEAR) && calPrev.get(Calendar.DAY_OF_YEAR) == calCur.get(Calendar.DAY_OF_YEAR)){
events.add(new Event(start,end,name,description));
}else{
days.add(new Day(323,events)); // HERE I CREATE NEW DAY AND ADD IT TO ARRAY
events.clear();
events.add(new Event(start,end,name,description));
}
}
}
}
【问题讨论】: