我的问题很简单,但我的代码无效。 我想将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() {
}
});
我在调试器中检查数据是按照比较器排序的......但是没有更新到ParseQueryAdapter ... notifyDataSetInvalidated什么都不做。
有关信息,最初我的问题是在指针字段上对查询进行排序:
query.orderByDescending("deal.date");
但那也不行......所以我写了一个手动分类。
答案 0 :(得分:0)
您可以创建onLoaded事件并创建排序索引(排序为HashMap)
@Override
public void onLoaded(List<ParseObject> objects, Exception e)
在getItem函数中,您可以根据索引映射数据。
逆序清单示例:
@Override
public ParseObject getItem(int position) { //For descending order
return super.getItem(getCount() - position - 1);
}