如果字段为true或false,我想首先对查询进行排序,然后按updatedAt排序。如何在Android上使用Parse SDK实现此目的?
我目前的代码是:
mQuery.orderByDescending("draft");
mQuery.addAscendingOrder("updatedAt");
但是我得到java.lang.IllegalArgumentException:无法按键草稿排序。
答案 0 :(得分:1)
首先使用updateTime的升序顺序解析草稿值为true的查询,并将值存储到数组中。获取后,解析查询的草稿值为false。
ArrayList<ParseObject> result=new ArrayList();
ParseQuery<ParseObject> query = ParseQuery.getQuery("_User");
query.whereEqualTo("draft", true);
query.orderByAscending("updatedAt");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> object, ParseException e) {
if (object == null) {
Log.d("score", "The getFirst request failed.");
} else {
result=object;
ParseQuery<ParseObject> query1 = ParseQuery.getQuery("_User");
query1.whereEqualTo("draft", false);
query1.orderByAscending("updatedAt");
query1.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> object, ParseException e) {
if (object == null) {
Log.d("score", "The getFirst request failed.");
} else {
result=object;
for(int i=0;i<object.size();i++)
{
result.add(object.get(i));
}
}
}
});
}
}
});
答案 1 :(得分:0)
尝试使用
mquery.whereEqualTo("True","draft");
而不是orderByDescending。