按日期Android排序列表视图

时间:2011-03-16 09:11:34

标签: android listview sorting

我有一个自定义列表视图,其中包含有关电视节目的信息,即。节目标题,最后一集,最后一集日期,下一集,下一集日期等等。

现在我想对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));
    }

任何可以提供帮助的人?

3 个答案:

答案 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对象,然后对它们进行排序。

这有用吗?

相关问题