Android - Parse.com - 从查询回调返回对象

标签 android parse-platform

我尝试创建一种通过用户名获取用户的方法。我正在使用解析查询。这是我的方法:

 public ParseUser getUserByName(String name){
    ParseUser user;
    ParseQuery<ParseUser> query = ParseQuery.getQuery("_User");
    query.whereEqualTo("username", name);
    query.getFirstInBackground(new GetCallback<ParseUser>() {
        public void done(ParseUser result, ParseException e) {
            if (result== null) {
                Log.d("user", "Get user failed.");
            } else {
                user= result; // Compile error here, said: "Variable 'user' need to be declared final"
            }
        }
    });
    return user;
}

它编译错误,并表示:“变量'user'需要声明为final”。但是,如果我声明:

final ParseUser user;

所以我无法将搜索结果分配给用户:

else {
          user= result; // Can't assign to user, because it's final.
     }

那么如何从查询回调中获取并返回搜索结果呢? 请帮忙。谢谢。

最佳答案

试试这个

 public ParseUser getUserByName(String name){
    ParseQuery<ParseUser> query = ParseUser.getQuery();
    query.whereEqualTo("username", name);
    try {
        return query.getFirst();
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

使用

ParseUser parseUser = getUserByName("userName");
if(parseUser !=null){

}

为什么getFirst();

Retrieves a list of ParseObjects that satisfy this query from the source in UI or Main Thread

为什么findInBackground();

Retrieves a list of ParseObjects that satisfy this query from the source in a background thread.

当我们使用 findInBackground(); 时,您无法返回任何结果,因为您的方法将在不等待 done() 响应的情况下返回结果

关于Android - Parse.com - 从查询回调返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378790/

相关文章:

java - 如何在没有主线程或 Activity 的情况下从服务调用 Speechrecognizer 方法

android - 使用 Parse Cloud 插入镜像对象

android - 这是停止处理程序线程的完美方法吗?

java - 直接在 Android 适配器中更改日期格式

java - 创建用户时解析崩溃

ios - UICollectionViewController 在滚动时重新加载图像

ios - PFFacebookUtils logInInBackgroundWithReadPermissions : block: opens Facebook app instead of using system account

ios - 如何查询 Parse 以从自定义类获取信息并将其显示在 Swift 的文本字段中?

android - 耗时后的 Firebase 事件

带有彩虹渐变的安卓按钮