Android Listview按名称排序(字母)

时间:2015-03-26 11:50:04

标签: android

我尝试按用户名字母排序列表视图,但这不起作用。 这是我的代码:

    session.friends.sort(new Comparator<Friend>() {
        @Override
        public int compare(Friend friend, Friend info) {
            // TODO Auto-generated method stub
            return 0;
        }
    });

排序为friend.username

3 个答案:

答案 0 :(得分:1)

这对我有用!

public void add(Friend object) {
    friends.add(object);
    Collections.sort(friends, new Comparator<Friend>() {
        @Override
        public int compare(Friend friend, Friend info) {
            return friend.publicname.compareTo(info.publicname);
        }
    });
    this.notifyDataSetChanged();
    super.add(object);
}

答案 1 :(得分:0)

查看ComparatorComparableCollator

要按字符串对对象进行排序,您可以使用:

session.friends.sort(new Comparator<Friend>() {
    @Override
    public int compare(Friend friend, Friend info) {
        Collator collator = Collator.getInstance(Locale.getDefault());

        return collator.compare(friend.username, info.username);
    }
});

答案 2 :(得分:0)

你不能把compare()的主体留空其他java不知道要比较什么试试这个 - &gt;

public int compare(Friend friend1, Friend friend2) {
    String name1 = friend1.getName().toLowerCase();
    String name2 = friend2.getName().toLowerCase();

    // asc order
    return name1.compareTo(name2);

    // desc order
    return name2.compareTo(name1);
}