如何使用ParseQuery Adapter进行复合查询

时间:2014-08-19 10:57:48

标签: android listview parse-platform

我试图使用ParseQueryAdapter给我一个游戏列表。我有一个单独的表来存储游戏和玩家指针。在查询中,我试图列出游戏,以及有多少玩家。 SQL风格是这样的:SELECT游戏,计数(玩家)来自游戏JOIN参与者......

我理解如何使用两个不同的ParseQueries来做到这一点,但它只需要一个ParseQuery。

public class GamesListAdapter extends ParseQueryAdapter<ParseObject> {

public GamesListAdapter(Context context) {
    super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {
            ParseQuery query = new ParseQuery("Games");
            return query;
        }
    });
}

如何通过计算来自不同表格的所有玩家来返回复合查询?

1 个答案:

答案 0 :(得分:0)

您似乎已经自己找到了答案,但我在此处发布了解决方案,以便其他人可能会觉得有用。

在我的情况下,我有一个User ParseObject和一个UserPhoto ParseObject。我想只获取用户的个人资料图片并将其设置为ListView,但从结果中排除currentUser(我的)个人资料图片。这是我的工作代码。

public class CustomAdapter extends ParseQueryAdapter<ParseObject> {

    public CustomAdapter(Context context) {
        super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
            public ParseQuery create() {
                ParseObject myUser = null;

                ParseQuery<ParseObject> myUserQuery = ParseQuery.getQuery("User");
                myDogQuery.whereEqualTo("user", ParseUser.getCurrentUser());
                try {
                   myUser = myUserQuery.getFirst();
                } catch (ParseException e) {
                    e.printStackTrace();
                }


                ParseQuery<ParseObject> userPhotoQuery = ParseQuery.getQuery("UserPhoto");
                dogPhotoQuery.whereEqualTo("imageName", "profileImage");
                dogPhotoQuery.whereNotEqualTo("user", myUser);
                dogPhotoQuery.orderByDescending("createdAt");

                return userPhotoQuery;


            }
        });
    }

我还想看看你的代码,如果你有一些时间,因为我想看看“whereKeyDoesMatch函数”的实现。谢谢!!