我有一个包含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
基于动态数组我希望对列表视图进行排序
有什么建议.....?
答案 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();