简体   繁体   English

使用ParseObject中的特定值到新查询

[英]use specific value from ParseObject to a new query

I'm trying to get the value relatedGuild from ParseObject relationShipObject that has been sent to another method. 我试图获得价值relatedGuildParseObject relationShipObject已发送到另一种方法。

My code: 我的代码:

private void getRelation(){
    Log.i("Status:", "Retrieving current user...");
    //Retrieve the current logged in user
    ParseUser currentUser = ParseUser.getCurrentUser();

    Log.i("Status:", "Retrieving relationship...");
    //Retrieve the relationship object for currentUser
    ParseQuery<ParseObject> relationQuery = ParseQuery.getQuery("relation");
    query.whereEqualTo("relatedUser", currentUser);
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> relationShip, ParseException e) {
            if (e == null) {
                for (ParseObject relationShipObject : relationShip) {
                    // This does not require a network access.
                    relationshipObject.get("relatedGuild");
                    getGuild(relationShipObject);
                }
            } else {
                Log.d("relation", "Error: " + e.getMessage());
            }
        }
    });
}
private void getGuild(ParseObject relationShipObject){
    Log.d("relation", "relationShipObject:" + relationShipObject.getString("relatedGuild"));
}

When i call Log.d in method getGuild i get a value equal to null . 当我在方法getGuild调用Log.d ,我得到一个等于null Am I trying to retrieve the value from row relatedGuild the wrong way? 我是否尝试以错误的方式从relatedGuild检索值? If yes, do you have any solution to the problem? 如果是,您有解决问题的办法吗?

Update: When i change from getString to get("relatedGuild").toString() , i get a value that looks like this: com.parse.ParseObject@21u702b7 . 更新:当我从getString更改为get("relatedGuild").toString() ,我得到的值看起来像这样: com.parse.ParseObject@21u702b7 That means relationShipObject contains some kind of value i don't know how to retrieve. 这意味着relationShipObject包含某种我不知道如何获取的值。

Try this: 尝试这个:

private void getRelation(){
    Log.i("Status:", "Retrieving current user...");
    //Retrieve the current logged in user
    ParseUser currentUser = ParseUser.getCurrentUser();

    Log.i("Status:", "Retrieving relationship...");
    //Retrieve the relationship object for currentUser
    ParseQuery<ParseObject> relationQuery = ParseQuery.getQuery("relation");
    query.whereEqualTo("relatedUser", currentUser);
    query.include("relatedGuild");  // <-THIS INCLUDES THE OBJECT BEHIND THE POINTER
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> relationShip, ParseException e) {
            if (e == null) {
                for (ParseObject relationShipObject : relationShip) {
                    // This does not require a network access.
                    relationshipObject.get("relatedGuild");
                    getGuild(relationShipObject);
                }
            } else {
                Log.d("relation", "Error: " + e.getMessage());
            }
        }
    });
}
private void getGuild(ParseObject relationShipObject){
    Log.d("relation", "relationShipObject:" + relationShipObject.getString("relatedGuild"));
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM