Listview按优先级排序

时间:2015-04-14 05:16:44

标签: android arrays sorting listview custom-adapter

我有一个包含5个数组的列表视图,4个数组是静态数组,1个数组是来自服务器的动态数组。

我的问题是如何使用1个数组(动态)

对整个列表视图进行排序

我的适配器就像这样

适配器适配器=新的Contacts_Adapter(class.this,Contacts_Names_Array,Contacts_Numbers_Array,Contacts_Images_Array,Contacts_Ids_Array,Chat_List_Array);

上面代码中的

包含5个数组

静态数组= Contacts_Names_Array,Contacts_Numbers_Array,Contacts_Images_Array,Contacts_Ids_Array

动态数组:Chat_List_Array

基于动态数组我希望对列表视图进行排序

有什么建议.....?

1 个答案:

答案 0 :(得分:1)

如果将所有这些数组合并到一个POJO对象列表中,其成员为contactName,contactNumber,...,contactId,则可以使用Collections.sort对列表进行排序。

合并只是创建一个像这样的类

class Bla{
    String contactName, contactNumber;
    int contactId;
}

用数组中的值填充。然后将结果放在一个列表中。如果您使用适配器,那么您可能已经这样做,因为适配器只对应于一个对象列表。

要根据ID进行排序,请定义比较器

public class BlaIdComparator<Bla> implements Comparator<Bla> {

     public int compare(Bla bla1, Bla bla2){
          return bla1.contactId - bla2.contactId;
          //this depends on your sorting order, ascending or descending
     }
}

然后在你的列表中使用它

Collections.sort(list, new BlaIdComparator());

然后刷新适配器以使更改生效

adapter.notifyDatasetChanged();