Comment Trier Date dans l'ordre décroissant De Arraylist Date dans android?
J'ai un ArrayList
qui stocke Date
s et j'ai trié dans l'ordre décroissant. Maintenant, je veux les afficher dans un ListView
. C'est ce que j'ai fait jusqu'à présent:
spndata.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
switch (position) {
case 0:
list = DBAdpter.requestUserData(assosiatetoken);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).lastModifiedDate != null) {
lv.setAdapter(new MyListAdapter(
getApplicationContext(), list));
}
}
break;
case 1:
list = DBAdpter.requestUserData(assosiatetoken);
Calendar c = Calendar.getInstance();
SimpleDateFormat df3 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String formattedDate3 = df3.format(c.getTime());
Log.v("log_tag", "Date " + formattedDate3);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).submitDate != null) {
String sDate = list.get(i).submitDate;
SimpleDateFormat df4 = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String formattedDate4 = df4.format(sDate);
Map<Date, Integer> dateMap = new TreeMap<Date, Integer>(new Comparator<Date>(){
public int compare(Date formattedDate3, Date formattedDate4) {
return formattedDate3.compareTo(formattedDate4);
}
});
lv.setAdapter(new MyListAdapter(
getApplicationContext(), list));
}
}
break;
case 2:
break;
case 3:
break;
default:
break;
}
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
OriginalL'auteur crickpatel0024 | 2012-10-29
Vous devez vous connecter pour publier un commentaire.
Créer
Arraylist<Date>
de la classe Date. Et l'utilisationCollections.sort()
dans l'ordre croissant.Voir sort(List<T> liste)
Pour Trier dans l'ordre décroissant Voir Les Collections.reverseOrder()
voir la réponse ci-dessus, ou d'aller à la javadoc pour plus de détails.
Cela fonctionne @SumitSingh...je ne sais pas pourquoi sa downvoted !
ouais, même moi, je ne sais pas. mais merci 🙂
OriginalL'auteur Sumit Singh
Ajoutez juste comme ça, dans le cas 1: à l'instar de ce
et de mettre cette méthode à la fin de votre classe
l'importation de ces packages à importer java.util.Collections; import java.util.Date;
Le générique de la méthode sort(List<T>) de type de Collections n'est pas applicable pour les arguments (ArrayList<All_Request_data_dto>).
Le type inféré All_Request_data_dto n'est pas un substitut valable pour la délimitée paramètre <T extends Comparable<? super T>>
s'il vous plaît attendre 1 min s'il vous plaît mettez votre DTO classe ici
OriginalL'auteur Jignesh Ansodariya
Date du compareTo() vous utilisez de travail pour l'ordre croissant.
À faire à la descente, juste inverser la valeur de compareTo ("coming out"). Vous pouvez utiliser un seul Comparateur de classe qui prend en drapeau/enum dans le constructeur qui identifie l'ordre de tri
Vous devez appeler Les Collections.sort() à fait le tri de la liste.
Comme une note de côté, je ne suis pas sûr de savoir pourquoi vous êtes la définition de votre carte à l'intérieur de votre boucle. Je ne suis pas exactement sûr de ce que votre code est en train de faire, mais je suppose que vous voulez pour remplir les valeurs indexées à partir de votre boucle for à la carte.
excellent point! J'ai modifié ma réponse à inclure l'inversion de l'ordre dans la méthode compare()
OriginalL'auteur Stealth Rabbi
Si la date en chaîne de format le convertir en format de date pour chaque objet :
Ensuite trier la liste de tableaux dans l'ordre décroissant :
OriginalL'auteur Jomia
Date
estComparable
donc suffit de créer une liste deList<Date>
et les trier à l'aide deCollections.sort()
. Et l'utilisationCollections.reverseOrder()
pour obtenir comparateur dereverse ordering
.De Java Doc
OriginalL'auteur Amit Deshpande