2014-01-31 4 views
1

Я использую Parse SDK на Android. Кажется, нет никакой документации по использованию метода ParseObject.saveAll(List<ParseObject>). У меня есть подкласс под названием Test, который расширяет ParseObject. Я использовал большинство методов ParseObject, но я хотел бы сохранить весь список, используя метод saveAll, но он требует List<ParseObject> и не принимает List<Test>. Есть идеи?Анализ SDK Android, сохранение всех объектов подкласса?

+0

Care поделиться немного для вашего кода, поэтому мы можем реально помочь вам? – gnclmorais

+0

На самом деле не так много общего. Вы использовали Parse SDK? Если это так, вы используете метод ParseObject.saveAll() для сохранения списка > –

+0

Код, который вы разделяете, всегда важен ... Возможно, мне что-то не хватает. Никогда не использовал SDK, но меня это интересует. – gnclmorais

ответ

1

Ваша модель ParseObject может понравиться этот

class Person extends ParseObject 
{ 
    public static String NAME = “name”; 
    public static int AGE = “age”; 
    public void setName(String name) 
    { 
     put(NAME,name); 
    } 
    public void setAge(int age) 
    { 
     put(AGE,age); 
    } 
    public Stirng getName() 
    { 
     return get(NAME); 
    } 
    public int getAge() 
    { 
     return get(AGE); 
    } 
} 

сейчас, Person является подклассом ParseObject. Вы можете использовать ParseObject.saveAll (Список personList)

Person person1 = new Person(); 
person1.setName("Mike"); 
person1.setAge(18); 
Person person2 = new Person(); 
person2.setName("John"); 
person2.setAge(25); 
List<Person> personList = new ArrayList<Person>(); 
personList.add(person1); 
personList.add(person2); 
ParseObject.saveAll(personList); 
1

Найдено решение здесь: https://parse.com/questions/how-to-use-parseobjectsaveall-on-subclass

Допустим, у вас есть три объекта игры, game1, Game2, Game3, это должно работать:

Список mygames = new ArrayList(); mygames.addAll (Arrays.asList (game1, game2, game3)); ParseObject.saveAllInBackground (mygames);

Альтернативным решением может быть, чтобы написать обычай сохранить весь метод внутри подкласса:

public static void saveAllInBackground(
     final List<MySubclass> objects, 
     final SaveCallback savecallback) { 

    counter = 0; 

    for (MySubclass mySubclass : objects) { 
     mySubclass.saveEventually(new SaveCallback() { 

      @Override 
      public void done(ParseException e) { 
       if (e == null) { 
        counter++; 
        if (counter == objects.size()) { 
         savecallback.done(null); 
        } 
       } else { 
        savecallback.done(e); 
       } 
      } 
     }); 
    } 
} 
Смежные вопросы