Search code examples
androidlistviewparse-platform

How to retrieve more than 1000 rows from Parse.com?


I have been using Parse to retrieve a data for a list view. Unfortunately they limit requests to 100 by default to a 1000 max. I have well over that 1000 max in my class. I found a link on the web which shows a way to do it on iOS but how would you do it on Android? Web Link

I am currently adding all the data into a arraylist in a loop until all items are complete (100) then adding them to the list


Solution

  • I have figured out how to achieve my goal:

    Declare Global Variable

    private static List<ParseObject>allObjects = new ArrayList<ParseObject>();
    

    Create Query

    final ParseQuery parseQuery = new ParseQuery("Objects");
    parseQuery.setLimit(1000);
    parseQuery.findInBackground(getAllObjects());
    

    Callback for Query

    int skip=0;
    FindCallback getAllObjects(){
        return new FindCallback(){
            public void done(List<ParseObject> objects, ParseException e) {
                if (e == null) {
    
                    allObjects.addAll(objects);
                     int limit =1000;
                    if (objects.size() == limit){
                        skip = skip + limit;
                        ParseQuery query = new ParseQuery("Objects");
                        query.setSkip(skip);
                        query.setLimit(limit);
                        query.findInBackground(getAllObjects());
                    }
                    //We have a full PokeDex
                    else {
                        //USE FULL DATA AS INTENDED
                    }
            }
        };
    }