2017-06-06 22 views
0

Ich möchte mein Objekt mit absteigenden Daten sortieren. Hier ist der Code, den ich in meinem Fragment verwende -Daten in absteigender Reihenfolge sortieren

int pos = adapter.contains(status.id);  
if (pos == -1) { 
    myobj = new MyAdapter.Mymyobj(); 
    myobj.status = status; 
    adapter.addItem(myobj); 
} else { 
    myobj = adapter.getItem(pos); 
    myobj.status = status; 
} 
convertStringToDate(myobj.status.getTimeInString()); 
sortDates.add(convertedDate); 
Comparator<Date> cmp = Collections.reverseOrder(null); 
Collections.sort(sortDates, cmp); 

adapter.notifyDataSetChanged(); 

private Date convertStringToDate(final String dateString) { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM. HH:mm"); 
    try { 
     convertedDate = dateFormat.parse(dateString); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    return convertedDate; 
} 

Der obige Code funktioniert nicht .. Nichts passiert tatsächlich. Ich möchte, dass die Liste in absteigender Reihenfolge angezeigt wird. Sollte ich auch etwas im Adapter machen?

Antwort

1

Werfen Sie einen Blick auf diese tutorial. Es zeigt Ihnen, wie Sie den Komparator Collections.reverseOrder() verwenden. Im Grunde nennst du es falsch. Sie sollten verwenden:

Collections.sort(sortDates, Collections.reverseOrder());

Bitte beachte, dass ich hier nicht null als Parameter übergeben.

+0

Scheint nicht zu funktionieren :(versucht mit ihm – GHousy8909

0

Ihr Code ist entweder unvollständig oder hat Kompilierungsfehler, die eine Antwort unmöglich machen.

Aber für eine Sache muss ich fragen, warum Sie es für notwendig halten, Datumsangaben in Zeichenfolgen zu konvertieren, nur um sie zu sortieren, wenn die Standard-Date-Klasse bereits Comparable implementiert?

Zum anderen fängt Ihre convertDateToString() -Methode DateParseException ab und druckt sie dort, wo kein Benutzer sie sehen kann, und geht weiter, als wäre nichts passiert, was wahrscheinlich später eine NPE im Code verursachen würde.

Verwandte Themen