解析Android SDK,saveAll子类对象?

时间:2014-01-31 17:39:21

标签: android parse-platform

我在Android上使用Parse SDK。似乎没有关于使用ParseObject.saveAll(List<ParseObject>)方法的任何文档。我有一个名为Test的子类,它扩展了ParseObject。到目前为止,我已经能够使用大多数ParseObject方法,但我想使用saveAll方法保存整个列表,但它需要List<ParseObject>并且不接受{ {1}}。有什么想法吗?

2 个答案:

答案 0 :(得分: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(List 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 :(得分:1)

在此处找到解决方案:https://parse.com/questions/how-to-use-parseobjectsaveall-on-subclass

  

假设你有3个Game对象,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);
                }
            }
        });
    }
}