java - 解析查询: return a value from the done() method in the class?

标签 java android parse-platform

我遇到以下问题:

public int getPoints() {
    ParseQuery<RoyalPoints> pointsQuery = RoyalPoints.getQuery();
    pointsQuery.whereEqualTo("user", ParseUser.getCurrentUser());
    pointsQuery.findInBackground(new FindCallback<RoyalPoints>() {
        @Override
        public void done(List<RoyalPoints> list, ParseException e) {
            if (e == null) {
                i = 0;
                for (RoyalPoints obj : list) {
                    totalPoints = totalPoints + obj.getInt("points");
                    i = i + 1;
                }
            } else {
                Log.d("Points retrieval", "Error: " + e.getMessage());
            }
        }
    });
    return totalPoints;
}

我想返回值totalPoints以在我的MainActivity中使用它。我尝试将其放入方法中并改为使用 void 类,但之后我找不到如何调用它。知道我该如何解决这个问题吗? 谢谢

最佳答案

问题在于,当您不想在后台查找时,您正在使用 findInBackground 方法。请改用 find 方法:

  public int getPoints() {
      try {
         ParseQuery<RoyalPoints> pointsQuery = RoyalPoints.getQuery();
         pointsQuery.whereEqualTo("user", ParseUser.getCurrentUser());
         List<RoyalPoints> list = pointsQuery.find();
         for (RoyalPoints obj : list) {
            totalPoints = totalPoints + obj.getInt("points");
         }

         return totalPoints;
     } catch (ParseException e) {
         Log.d("Points retrieval", "Error: " + e.getMessage());
     }
  }

注意:通常我会通过 ParseException 或转换为运行时,因为调用者可能需要用它做一些事情。

关于java - 解析查询: return a value from the done() method in the class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700370/

相关文章:

javascript - 从一个 Parse 应用程序在另一个 Parse 应用程序中调用 Cloud Call

java - 使用 Jackson 和 JavaTimeModule 序列化 Java 8 ZonedDateTime

java - JSF 页面无法使用 Openshift 在 Internet Explorer 中查看,但可以在本地主机和 Chrome 上查看

java - 如何在启动时自动显示软键盘?

java - 未找到 JNI native 方法

javascript - Backbone : Use Model's Data and Functions in View

java - 我在 ListView 中有一个自定义单元格。如何使其在触摸时突出显示?

java - 在 Java 中获取 Windows 7 库位置

android - 在带有可选文本的 TextView 上使用 onClick - 如何避免双击?

parse-platform - 如何存储重复的电子邮件地址?