[英]Parse Android SDK: ClassCastException when LocalDatastore is activated and List of Subclass Message is loaded from the Server
[英]Parse Android SDK, saveAll subclass objects?
我正在Android上使用Parse SDK。 關於使用ParseObject.saveAll(List<ParseObject>)
方法,似乎沒有任何文檔。 我有一個稱為Test
的子類,該子類擴展了ParseObject
。 到目前為止,我已經可以使用大多數ParseObject
方法,但是我想使用saveAll
方法保存整個列表,但是它需要一個List<ParseObject>
並且不接受List<Test>
。 有任何想法嗎?
您的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);
在此處找到解決方案: https : //parse.com/questions/how-to-use-parseobjectsaveall-on-subclass
假設您有3個游戲對象game1,game2,game3,這應該可以工作:
列出mygames = new ArrayList(); mygames.addAll(Arrays.asList(game1,game2,game3)); ParseObject.saveAllInBackground(mygames);
另一種解決方案是在子類中編寫一個自定義的save all方法:
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);
}
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.