Blackberry - сортировать данные ListField по дате
Я получил данные из синтаксического анализа XML и пытаюсь отсортировать их по дате, которая имеет формат вроде "Ср, 06 июня 2012 09:53:05 +0700". Таким образом, все новости от каждого поставщика будут смешаны и организованы от самых последних до самых новых.
Вот код:
int i=0;
while (i<vec.size()){
row = new TableRowManager();
prov = new LabelField(((BinNews)vec.elementAt(i)).getProv(),DrawStyle.ELLIPSIS){
protected void paint(Graphics g) {
g.setColor(Color.ORANGERED);
super.paint(g);
}
};
title = new LabelField(((BinNews)vec.elementAt(i)).getTitle(),DrawStyle.ELLIPSIS){
protected void paint(Graphics g) {
g.setColor(Color.BLUE);
super.paint(g);
}
};
title.setFont(Font.getDefault().derive(Font.BOLD));
desc = new LabelField(((BinNews)vec.elementAt(i)).getDesc(),DrawStyle.ELLIPSIS){
protected void paint(Graphics g) {
g.setColor(Color.BLACK);
super.paint(g);
}
};
date = new LabelField(((BinNews)vec.elementAt(i)).getDate(),DrawStyle.ELLIPSIS){
protected void paint(Graphics g) {
g.setColor(Color.ORANGERED);
super.paint(g);
}
};
rows.addElement(row);
setSize(rows.size());
row.add(prov);
row.add(date);
row.add(title);
row.add(desc);
i++;
}
поэтому, прежде чем добавить его в строку, он будет отсортирован первым. Может кто-нибудь мне помочь?
1 ответ
Решение
Попробуй это -
public static SimpleSortingVector vector = new SimpleSortingVector ();
vector.setSortComparator(new MyComparator());
vector.addElement(new FriendsRequestObject(id_,name_));
vector.reSort();
import net.rim.device.api.util.Comparator;
public class MyComparator implements Comparator {
public int compare(Object o1, Object o2) {
FriendsRequestObject f1 = (FriendsRequestObject)o1;
FriendsRequestObject f2 = (FriendsRequestObject)o2;
return f1.getSender_name().compareTo(f2.getSender_name());
}
public boolean equals(Object obj) {
return compare(this, obj) == 0;
}
}