繁体   English   中英

Android Parse-复杂查询

[英]Android Parse - Complicated query

我有一个功能应该从匹配用户选择日期的Parse DB中获取事件。 涉及的两个类如下所示: SHOW-CLASSSHOWTIME-CLASS说明:Showtimeclass仅具有一个属性,即日期属性。 Showtimeclass具有指向Showtimeclass对象的objectId数组。 因此,我的任务是找到与所选日期匹配的Showtime,然后将Showtime的结果数组与Showclass相匹配。 我试图将Showclass数组与结果数组匹配,但没有成功。 logcat中没有错误。 我的代码如下所示:

主要查询代码:

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

        tempTimes = getTimes();

        Log.e("SKG: temptimes", String.valueOf(tempTimes.size()));

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

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

GetTimes函数:

private ArrayList<String> getTimes() {
    final ArrayList<String> 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.getObjectId());
                }
            }
        }
    });

    Log.e("SKG: event", String.valueOf(t1 .size()));
    return t1;
}

因此,我对您的问题是:如何从Showtimeclass中获取与所选日期匹配的Showclass中的对象的objectId?

解析将其时间保存在UTC中,请确保将其转换为UTC并尝试查询,这样您现有的日期可以转换为utc

SimpleDateFormat lv_formatter = new SimpleDateFormat(); 
lv_formatter.setTimeZone(TimeZone.getTimeZone("UTC"));  
lv_dateFormateInUTC = lv_formatter.format(lv_localDate); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM