Android Listview按名称排序(字母表)

Android Listview按名称排序(字母表),android,Android,我试图按用户名字母表对listview进行排序,但不起作用。 这是我的代码: session.friends.sort(new Comparator<Friend>() { @Override public int compare(Friend friend, Friend info) { // TODO Auto-generated method stub return 0; }

我试图按用户名字母表对listview进行排序,但不起作用。 这是我的代码:

    session.friends.sort(new Comparator<Friend>() {
        @Override
        public int compare(Friend friend, Friend info) {
            // TODO Auto-generated method stub
            return 0;
        }
    });
session.friends.sort(新的Comparator(){
@凌驾
公共整数比较(好友、好友信息){
//TODO自动生成的方法存根
返回0;
}
});
排序到friend.username

查看,然后

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

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);
    }
});
session.friends.sort(新的Comparator(){
@凌驾
公共整数比较(好友、好友信息){
Collator-Collator=Collator.getInstance(Locale.getDefault());
返回collator.compare(friend.username,info.username);
}
});

您不能将compare()的正文留空,否则java将不知道要比较什么请尝试以下-->

这是为我工作

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);
}
公共作废添加(好友对象){
添加(对象);
Collections.sort(friends,new Comparator(){
@凌驾
公共整数比较(好友、好友信息){
返回friend.publicname.compareTo(info.publicname);
}
});
this.notifyDataSetChanged();
super.add(object);
}

从您的
Friend
对象更改为您的
返回
和您的
friendname
。检查此链接:
Android Listview按名称排序
。错。您将对提供给适配器的列表进行排序。这也不起作用:(我在setAdapter下有一个这样的对象,如果在setAdapter下,您的意思是在setAdapter之后,那么您必须在实例化适配器之前或在其构造函数中对友元数组进行排序。或者在对其进行排序之后,您应该调用onNotifyDatasetChanged()在适配器上,使其反映更改。请在设置适配器之前调用它。
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);
}