下面的JSONArray应根据键" date_course"重新安排。例如,对于2015年,
一月
-
二月-
三月
-
四月-
...等。
[
{
"id": "1",
"date_course": "2015-01-29",
"nom": "Wow Urbain de St Pierre",
"lieu": "St Pierre",
"zone": "Nord",
"distance": "15",
"denivele": "5000m cumule",
"lieu_depart": "St-Pierre",
"lieu_arrivee": "Fin de chantier",
"tarifs": "15",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge Decathlon",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "1",
"nom_organisateur": "Organisateur 1",
"email_organisateur": "organisateur1@gmail.com",
"telephone_organisateur": "1234343",
"site_web_organisateur": "site.com",
"site_inscription_organisateur": null,
"course_qualificative": "0",
"categorie_id": "1"
},
{
"id": "2",
"date_course": "2015-01-09",
"nom": "Sentier de L'onf: La Providenc",
"lieu": "Saint Denis",
"zone": "Nord",
"distance": "11",
"denivele": "800m cumule",
"lieu_depart": "Allee de la foret 97400 Saint Denis",
"lieu_arrivee": "Saint Denis",
"tarifs": "18",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge Wow",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "2",
"nom_organisateur": "Organisateur 2",
"email_organisateur": "organisateur2@gmail.com",
"telephone_organisateur": null,
"site_web_organisateur": null,
"site_inscription_organisateur": null,
"course_qualificative": "1",
"categorie_id": "2"
},
{
"id": "3",
"date_course": "2014-12-17",
"nom": "Wow Urbain de St Paul",
"lieu": "St Paul",
"zone": "Est",
"distance": "19",
"denivele": "500m cumule",
"lieu_depart": "St-Paul",
"lieu_arrivee": "St-Paul",
"tarifs": "10",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge City Sport",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "2",
"nom_organisateur": "Organisateur 3",
"email_organisateur": "organisateur3@gmail.com",
"telephone_organisateur": "35645654",
"site_web_organisateur": "organisateur.com",
"site_inscription_organisateur": "siteinscription.com",
"course_qualificative": "0",
"categorie_id": "3"
},
{
"id": "4",
"date_course": "2015-03-11",
"nom": "Sentier de la Marie",
"lieu": "St Gilles",
"zone": "Ouest",
"distance": "14",
"denivele": "800m cumule",
"lieu_depart": "Mairie de St Gilles",
"lieu_arrivee": "Mairie de St Gilles",
"tarifs": "18",
"dossards": "Ou recuperer les dossards",
"challenge": "Challenge Wow",
"parcours": "information",
"image_parcours": "link to image",
"organisateur_id": "2",
"nom_organisateur": "Organisateur 4",
"email_organisateur": null,
"telephone_organisateur": null,
"site_web_organisateur": "organisateur4.com",
"site_inscription_organisateur": "organisateur4.com",
"course_qualificative": "0",
"categorie_id": "1"
}
]
我为每个date_course标签提取了年份和月份,但现在我陷入了匹配日期和重新安排arraylist的问题。这是我的工作。
ArrayList<CourseCopy>filteredList = new ArrayList<CourseCopy>();
Date date = null;
if (myApp.getArrCalendarModelList()!=null){
calItem = myApp.getArrCalendarModelList();
for (int i=0;i<calItem.size();i++){
String string = calItem.get(i).date_course;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
try {
date = format.parse(string);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
filteredList.add(new CourseCopy(date,calItem.get(i).nom,calItem.get(i).lieu,calItem.get(i).zone,calItem.get(i).distance,calItem.get(i).denivele,
calItem.get(i).lieu_depart,calItem.get(i).lieu_arrivee,calItem.get(i).tarifs,calItem.get(i).dossards,calItem.get(i).challenge,
calItem.get(i).parcours,calItem.get(i).image_parcours,calItem.get(i).organisateur_id,calItem.get(i).nom_organisateur,calItem.get(i).email_organisateur,
calItem.get(i).telephone_organisateur,calItem.get(i).site_web_organisateur,calItem.get(i).site_inscription_organisateur,calItem.get(i).course_qualificative,calItem.get(i).categorie_id));
}
Collections.sort(filteredList, new Comparator<CourseCopy>() {
@Override
public int compare(CourseCopy lhs, CourseCopy rhs) {
// TODO Auto-generated method stub
return lhs.getDate_course().compareTo(rhs.getDate_course());
}
});
}
有人可以给我一个提示或帮助我得到理想的结果。
答案 0 :(得分:1)
将String date转换为Date对象
for (int i=0;i<calItem.size();i++){
String string = calItem.get(i).date_course;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = format.parse(string);
calItem.get(i).setDate(date);
}
在您的calItem中的每个项目中存储日期
之后你就可以像这样排序了
Collections.sort(calItem, new Comparator<Item>() {
public int compare(Item o1, Item o2) {
return o1.getDate().compareTo(o2.getDate());
}
});
更新:
你可以这样称呼它
if (myApp.getArrCalendarModelList()!=null){
calItem = myApp.getArrCalendarModelList();
for (int i=0;i<calItem.size();i++){
String string = calItem.get(i).date_course;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = format.parse(string);
calItem.get(i).setDate(date);
}
Collections.sort(calItem, new Comparator<Item>() {
public int compare(Item o1, Item o2) {
return o1.getDate().compareTo(o2.getDate());
}
});
}