如何使用Android中的Comparator立即使用远程数据对listview进行排序?

时间:2016-05-14 06:20:53

标签: java android listview collections comparator

当我单击按钮对列表视图进行排序时,它可以正常工作,但只有当我开始滚动列表视图时才会显示排序顺序。

这就是我的数据模型类中的内容:

    public static Comparator<Emplyoyee> sortNameAtoZ = new Comparator<Emplyoyee>() {

        @Override
        public int compare(Emplyoyee lhs, Emplyoyee rhs) {
            String emp1 = lhs.getName();
            String emp2 = rhs.getName();

            return emp1.compareTo(emp2);
            //descending order
            //return StudentName2.compareTo(StudentName1);
        }};

当用户点击按钮时,我称之为:

Collections.sort(rowdata, EmployeeRowData.sortNameZtoA);
adapter.notifyDataSetChanged();

在进行研究并比较不同来源后,设置与此处的设置相同,但单击按钮后不会立即对列表视图进行排序。我使用Volley用远程数据库中的数据填充listview。

1 个答案:

答案 0 :(得分:2)

重置你的arraylist。

试试这个:

Collections.sort(rowdata, EmployeeRowData.sortNameZtoA);

    adapter.setArrayList(rowdata);

    adapter.notifyDataSetChanged();

您的适配器

public void setArrayList(ArrayList<Emplyoyee> array){
yourArray =array;
}