ParseQueryAdapter:在客户端排序数据

MLK*_*iwy 9 sorting baseadapter parse-platform

我的问题很简单,但我的代码不起作用.我想将ParseQuery的结果排序到ParseQueryAdapter中,然后再将其显示到ListView中.

products.addOnQueryLoadListener(new ParseQueryAdapter.OnQueryLoadListener<Product>() {

        @Override
        public void onLoaded(List<Product> data, Exception e) {
            Collections.sort(data, LastDealComparator);
            products.notifyDataSetInvalidated();
        }

        @Override
        public void onLoading() {
        }

    });
Run Code Online (Sandbox Code Playgroud)

我检查调试器数据是按比较器排序的......但是没有更新到ParseQueryAdapter ... notifyDataSetInvalidated什么都不做.

有关信息,最初我的问题是对指针字段排序查询:

query.orderByDescending("deal.date");
Run Code Online (Sandbox Code Playgroud)

但那也不行......所以我写了一个手动排序.

xna*_*gyg 0

您可以创建 onLoaded 事件并创建排序索引(HashMap 的排序)

@Override
public void onLoaded(List<ParseObject> objects, Exception e)
Run Code Online (Sandbox Code Playgroud)

在 getItem 函数中,您可以根据索引映射数据。

逆序列表示例:

@Override
public ParseObject getItem(int position) { //For descending order
    return super.getItem(getCount() - position - 1);
}
Run Code Online (Sandbox Code Playgroud)