无法通过getFirstInBackGround从Parse检索数据

时间:2015-11-15 09:04:25

标签: android parse-platform

我正在尝试从名为Location的Parse中的类中检索数据,其中有两列latitudelongitude。还有一个名为Username的列,其中存储了用户的objectId。 我将此Username与我在我的计划中使用的getFirstInBackground相匹配,但似乎已完成&#39; for (int i = 0; i < recipient_id.size(); i++) { ParseQuery<ParseObject> query = ParseQuery.getQuery("Location"); query.whereEqualTo("Username", recipient_id.get(i).toString()); query.getFirstInBackground(new GetCallback<ParseObject>() { @Override public void done(ParseObject object, ParseException e) { if(object==null) { //Toast.makeText(getApplicationContext(), locations.toString(), Toast.LENGTH_LONG).show(); } else{ //Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show(); //e.printStackTrace(); lat = (double) object.get("latitude"); longi = (double) object.get("longitude"); Log.e("Latitude", lat+""); locations.add(lat); locations.add(longi); Log.e("Locations", locations+""); } } }); } Log.e("Locations", locations+""); 中使用的方法不会执行。

以下是代码:

ArrayList

当我检查我的logcat时,位置显示为空。 recipient_id字符串objectId以随机顺序包含latitude个用户。

Parse class - Location

我尝试将longitudegetInBackground数据输入到User类中,但问题仍然相同。

编辑:我使用ParseUser来查询getFirstInBackground而不是<div ng-app="app"> <div ng-controller="mainController"> <div ng-repeat="product in products"> <h1>{{product.name}}</h1> <p>£{{product.price}}.00</p> <img src="{{product.cover}}"/> <ul> <li>Likes: {{product.likes}}</li> <li>Dislikes: {{product.dislikes}}</li> </ul> <button ng-click="plusOne($index)">Like</button> <button ng-click="minusOne($index)">Dislike</button> </div> </div> </div>

1 个答案:

答案 0 :(得分:0)

尝试这样的方式。 首先,您可以将用户存储在解析查询数组列表中,如...

List<ParseQuery<ParseObject>> addQuery = new ArrayList<ParseQuery<ParseObject>>();
    // first store in parse query array
    for (int i = 0; i < recipient_id.length; i++) {
        ParseQuery<ParseObject> query = ParseQuery.getQuery("Location");
        query.whereEqualTo("Username", recipient_id.get(i).toString());
        addQuery.add(query);
    }

    ParseQuery<ParseObject> fetch = ParseQuery.or(addQuery);
    fetch.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> list, ParseException e) {
            // TODO Auto-generated method stub
            if (e == null) {
                // Success
            } else {
                // Fail
                // in case its fail that a time check error like
                Log.e("get Error", " Message " + e.getMessage());
            }

        }
    });

尝试另一种方式......

{{1}}