Parse Query Android - 匹配指向对象数组的指针数组

时间:2016-02-03 20:23:55

标签: java android arrays parse-platform

我有两个班级: SHOW:包含一个指向SHOWTIMES类的指针数组 SHOWTIMES:包含日期属性。

我想: 获取与所选日期匹配的SHOWTIMES对象到数​​组中。这是“tempTimes”数组,它从函数getTimes()获取ParseObjects数组。他们结果是okey,我检查了它们的objectIds。

然后,我想在该数组中使用那些SHOWTIMES对象来查找SHOW对象在其指针数组中包含任何temptimes-objects的对象,称为“showtimes”。如果任何数组包含“tempTimes”中的一个对象,那么我找到了一个SHOW,它在所选日期有一个SHOWTIME,并且它被添加到数组“result”中。这也有效,但我的问题在于Main部分的最后几行代码。

如何获取我的masterquery,它是否正在查询SHOW对象,只获取SHOW数组中的SHOW?因为当我检查日志时一切看起来都是正确的, upuntil最后一行代码,因为masterQuery返回0个元素。

有什么想法? 如果你有兴趣,我很乐意解释更多,因为我很难以一种简单的方式解释这个问题!

主要

        temps = new ArrayList<>();
        tempresult = new ArrayList<>();
        tempTimes = new ArrayList<>();
        result = new ArrayList<>();

        tempTimes = getTimes();

        Date de = getDateFromDatePicket(dialog.getDatePicker());
        Date ds = getDateFromDatePicketStart(dialog.getDatePicker());

        final ParseQuery<ParseObject> showQuery = ParseQuery.getQuery("Show");

        showQuery.whereLessThanOrEqualTo("startDate", ds);
        showQuery.whereGreaterThanOrEqualTo("endDate", ds);
        showQuery.findInBackground(new FindCallback<ParseObject>() {
            public void done(List<ParseObject> likeList, ParseException e) {
                if (e == null) {
                    Log.e("SKG: possiblesize ", String.valueOf(likeList.size()));
                    for (ParseObject likeItem : likeList) {
                        if(likeItem.getList("showtimes").contains(tempTimes)){
                            result.add(likeItem);
                        }


                        JSONArray jArray = likeItem.getJSONArray("showtimes").;
                        tempresult.clear();
                        for (int i = 0; i < jArray.length(); i++) {
                            JSONObject jsonobject = null;
                            try {
                                jsonobject = jArray.getJSONObject(i);
                            } catch (JSONException e1) {
                                e1.printStackTrace();
                            }
                            try {
                                String u = jsonobject.getString("objectId");
                                //Log.e("SKG: ustring", u);
                                tempresult.add(u);
                            } catch (JSONException e1) {
                                e1.printStackTrace();
                            }
                        }
                        for (String r : tempresult) {

                            if (tempTimes.contains(r)) {
                                result.add(likeItem);
                                Log.e("SKG R:", likeItem.getObjectId());
                            }
                        }

                    }
                }
                Log.e("SKG resultsize: ", String.valueOf(result.size()));
            }

        });


        masterQuery.whereContainedIn("objectId", tempTimes);

getTimes功能:

    private ArrayList<ParseObject> getTimes() {
    final ArrayList<ParseObject> t1 = new ArrayList<>();

    final ParseQuery<ParseObject> showtimeQuery = ParseQuery.getQuery("Showtime");

    Date de = getDateFromDatePicket(dialog.getDatePicker());
    Date ds = getDateFromDatePicketStart(dialog.getDatePicker());

    showtimeQuery.whereLessThanOrEqualTo("date", de);
    showtimeQuery.whereGreaterThanOrEqualTo("date", ds);
    showtimeQuery.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> likeList, ParseException e) {
            if (e == null) {
                for (ParseObject likeItem : likeList) {
                    t1.add(likeItem);
                    Log.e("SKG: t1chosen ", likeItem.getObjectId());
                }
            }
            Log.e("SKG: t1size:", String.valueOf(t1.size()));
        }
    });
    return t1;
}

0 个答案:

没有答案