我的Android应用中有ListView
进行排序。例如,当我单击Name时,它按名称排序。
以下是代码:
private class MyListAdapter extends ArrayAdapter<Person> {
private final ArrayList<Person> people;
//.......
public void sort(SortBy x) {
switch (x) {
case NAME:
this.sort(new OrderByName());
sortedBy = "NAME";
break;
以下是比较者:
private static class OrderByName implements Comparator<Person> {
@Override
public int compare(Person s1, Person s2) {
return s1.getName().compareTo(s2.getName());
}
}
当我点击Name
按名称对列表视图进行排序时...我将列表排序但旧的数据行仍然存在..并与另一行关联...
我对Android很新...我真的需要一些帮助来调试这个问题。在此先感谢!
答案 0 :(得分:0)
对列表进行排序后,只需对ArrayAdapter对象使用notifyDataSetChanged()方法即可。它会刷新列表。我假设您没有创建多个ArrayAdapter对象。
//通知列表已更改adapter.notifyDataSetChanged();
答案 1 :(得分:0)
首先检查您的ArrayAdapter中是否包含最新值。如果使用下面使用的最新值进行更新:
adapter.notifyDataSetChanged(); // notify the listview to update items in the list.
希望这些可以帮到你。