2017-06-06 75 views
0

我想對具有日期遞減順序的對象進行排序。這裏是我在我的片段中使用的代碼 -排序日期降序

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; 
} 

上述代碼不工作..實際上沒有什麼事情發生。我希望列表按降序排列。 我應該在適配器中做些什麼嗎?

回答

1

看看這個tutorial。它向您展示瞭如何使用Collections.reverseOrder()比較器。基本上,你說錯了。您應該使用:

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

請注意,我不是過客null作爲參數在這裏。

+0

似乎不工作:(嘗試與它 – GHousy8909

0

您提供的代碼不完整,或者有編譯錯誤導致無法回答。

但是,首先,我必須問,爲什麼您認爲有必要將日期轉換爲字符串來進行排序,而標準的Date類已經實現了Comparable?

另一方面,您的convertDateToString()方法會捕獲DateParseException並在沒有用戶看到它們的情況下將其打印出來,然後繼續進行,就像什麼都沒有發生過一樣,這可能會在代碼後面導致NPE。