我有一个自定义列表视图,其中包含有关电视节目的信息,即。节目标题,最后一集,最后一集日期,下一集,下一集日期等等。
现在我想对listview进行排序,即。按上一集的日期。节目存储在Arraylist中,日期以MMM / dd / yyyy格式存储为字符串。
Sort by title works with follow code:
public void sortByTitle() {
Comparator<Show> comperator = new Comparator<Show>() {
@Override
public int compare(Show object1, Show object2) {
return object1.getTitle().compareToIgnoreCase(
object2.getTitle());
}
};
Collections.sort(dataFromDB, comperator);
lv1.setAdapter(new CustomListViewAdapter(this, dataFromDB));
}
任何可以提供帮助的人?
答案 0 :(得分:4)
以yyyy-MM-dd
格式将日期存储为字符串。以这种格式比较两个日期字符串将始终保证获得升序/降序排序。
答案 1 :(得分:1)
与基于标题的排序相同,也可以使用日期来完成。 例如:
// sort by date
public int compareTo(NewsDetails another)
{
if (another == null) return 1;
// sort descending, most recent first
return another.date.compareTo(date);
}
答案 2 :(得分:0)
考虑到您拥有ArrayList中的所有数据,并且您有两个ArrayLists,其中一个包含日期,而另一个ArrayList中的相应索引具有关于TV Shows的其他详细信息,您应该对两个ArrayLists进行排序存储在保存日期的ArrayList中的日期的基础,然后为它提供ListView适配器。
您可以使用日期时间构造Date对象,然后对它们进行排序。
这有用吗?