如何使用Android中的解析使用内部查询获取数据?

时间:2015-02-13 05:06:58

标签: android mysql parse-platform

我在Parse有3个课程。

1)发布(post_id,post_text,user_pointer)

2)投票(vote_type,post_pointer,user_pointer)

3)评论(comment_id,post_pointer,user_pointer)

我需要获取帖子文本列表,总票数和&对特定帖子的评论 并检查当前用户是否已投票。如果投票,也返回vote_type(upvote,downvote)。

我试过了。

ParseQuery<ParseObject> query = ParseQuery.getQuery("Post");

        query.orderByDescending("createdAt"); 
        query.findInBackground(new FindCallback<ParseObject>() 
        {
          @Override 
          public void done(List<ParseObject> list, ParseException e) 
          {
            // TODO Auto-generated method stub
            if(e==null)
            {
              if(list!=null)
              {
                for(int i=0;i<list.size();i++)
                {
                    final PostObject obj = new PostObject();
                    String posttext = list.get(i).getString("post_text");

                    obj.setPost(posttext);
                    obj.setObjectID(objID);

                    ParseQuery<ParseObject> query = ParseQuery.getQuery("Votes");
                    ParseObject pointerObj = ParseObject.createWithoutData("Post",obj.getObjectID()); 
                    query.whereEqualTo("post_pointer", pointerObj); 

                    query.findInBackground(new FindCallback<ParseObject>() 
                            {

                                @Override
                                public void done(List<ParseObject> arg0, ParseException e) {
                                    // TODO Auto-generated method stub
                                    if(e==null)
                                    {
                                        if(arg0.size()>0)
                                        {
                                           // get votes count 
                                        }
                                    }
                                    else
                                    {

                                    }
                                }
                    });


                }

但for循环不等待内部查询执行。在我的案例中,有人可以建议一个好的方法来编写查询。

2 个答案:

答案 0 :(得分:0)

尝试用obj.getObjectId()

替换obj.getObjectID()

答案 1 :(得分:0)

我用于每个循环而不是for循环。这解决了我的问题。