解析,带来所有结果

时间:2018-02-08 13:03:11

标签: java android parse-platform

我正在尝试创建一个高分列表,我可以通过领域为本地数据库创建它。现在,我正在尝试使用解析服务器进行全局高分。在这个领域,我可以这样做,我无法在解析时成功。我怎么能像在境界那样解析它。我只需要将所有分数抛出来解析数据库然后排序并先取10。

private void addNewHighScoreToLocalDatabase(final int score) {
    realm.executeTransaction(new Realm.Transaction() {
        @Override
        public void execute(Realm realm) {
            LocalHighScore localHighScore = realm.createObject(LocalHighScore.class);
            localHighScore.setScore(score);
        }
    });
}

RealmResults<LocalHighScore> results = realm.where(LocalHighScore.class).sort("score", Sort.DESCENDING).findAll();
    int count = results.size();
    TextView[] order = {first, second, third, fourth, fifth, sixth, seventh, eight, ninth, tenth};
    for (int i = 0; order.length > i; i++) {
        order[i].setText(results.get(i).getScore() + "");
    }



ParseQuery<ParseObject> query = ParseQuery.getQuery("GlobalHighScore");
    query.setLimit(10).orderByDescending("score");
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> objects, ParseException e) {
                for (int i = 0; orderScore.length > i; i++) {
                    orderScore[i].setText(objects.get(i).getString("score")+"");
                    orderName[i].setText(objects.get(i).getString("name")+"");
            }
        }
    });

我正在尝试制作此查询,但它会返回空列表。我在向数据库添加元素时进行了检查,并且添加时没有任何问题。

1 个答案:

答案 0 :(得分:0)

Parse只使用查询就可以做到这一点!

以下是您将在查询中使用的相关方法:

setLimit(int) orderByDescending(java.lang.String)

请注意,如果您将所有得分/高分存储在一个班级中,则此方法有效。假设你有一个HighScore课程,你只需要将限制设置为10并传递你的分数的关键名称。您可以在locale添加HighScore字段,因此当您想获得本地高分时,只需添加whereEqualTo来调用以匹配当前用户的区域设置。

如果每个区域设置都有单独的类(不推荐),要获得全局高分,您需要执行上面的查询,每个类的限制为10,将所有结果拼接在一起,然后在本地排序。不过,我真的建议你参加单一的高分课程。