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()。