Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将ParseObject中的特定值用于新查询_Android_Parse Platform - Fatal编程技术网

Android 将ParseObject中的特定值用于新查询

Android 将ParseObject中的特定值用于新查询,android,parse-platform,Android,Parse Platform,我正在尝试从ParseObject relationShipObject获取已发送到另一个方法的值relatedGuild 我的代码: private void getRelation(){ Log.i("Status:", "Retrieving current user..."); //Retrieve the current logged in user ParseUser currentUser = ParseUser.getCurrentUser();

我正在尝试从
ParseObject relationShipObject
获取已发送到另一个方法的值
relatedGuild

我的代码:

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"));
}
private void getRelation(){
Log.i(“状态:,“正在检索当前用户…”);
//检索当前登录的用户
ParseUser currentUser=ParseUser.getCurrentUser();
Log.i(“状态:,“检索关系…”);
//检索currentUser的关系对象
ParseQuery relationQuery=ParseQuery.getQuery(“关系”);
查询。whereEqualTo(“relatedUser”,currentUser);
findInBackground(新的FindCallback(){
public void done(列表关系,parsee异常){
如果(e==null){
for(ParseObject relationShipObject:relationShip){
//这不需要网络访问。
relationshipObject.get(“relatedGuild”);
getGuild(relationShipObject);
}
}否则{
Log.d(“关系”,“错误:+e.getMessage());
}
}
});
}
私有void getGuild(ParseObject relationShipObject){
Log.d(“relation”、“relationShipObject:+relationShipObject.getString”(“relatedGuild”);
}
当我在方法
getGuild
中调用
Log.d
时,我得到的值等于
null
。我是否试图以错误的方式从行
relatedGuild
检索值?如果是,你有什么解决问题的办法吗

更新: 当我从
getString
更改为
get(“relatedGuild”).toString()
时,我会得到一个如下的值:
com.parse。ParseObject@21u702b7
。这意味着
relationShipObject
包含某种我不知道如何检索的值。

尝试以下方法:

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"));
}
private void getRelation(){
Log.i(“状态:,“正在检索当前用户…”);
//检索当前登录的用户
ParseUser currentUser=ParseUser.getCurrentUser();
Log.i(“状态:,“检索关系…”);
//检索currentUser的关系对象
ParseQuery relationQuery=ParseQuery.getQuery(“关系”);
查询。whereEqualTo(“relatedUser”,currentUser);

query.include(“relatedGuild”);//这意味着
relatedGuild
是一个ParseObject,表示它是一个指针。因此,您可以通过调用
relationShipObject.getParseObject(“relatedGuild”)
从该指针字段获取对象。然后,您想用它做什么取决于您。不,getParseObject(“relatedGuild”)不获取对象;仅获取指针。若要获取对象,请在查询中使用include(),就像我在回答中建议的那样,或者在使用relatedGuild对象之前对其调用fetch()。