我试图保存ParseObject。当在Parse上创建类时,值和所需的行似乎没有被添加。
ParseDetailsItem
@ParseClassName("ParseDetailsItem")
public class ParseDetailsItem extends ParseObject
{
private String fName;
private String lName;
private int age;
public ParseDetailsItem(String fName,String lName,int age)
{
super();
this.fName = fName;
this.lName = lName;
this.age = age;
}
}
保存()
s_fName = et1.getText().toString();
s_lName = et2.getText().toString();
s_age = Integer.parseInt(et3.getText().toString());
ParseDetailsItem t = new ParseDetailsItem(s_fName,s_lName,s_age);
t.setfName(s_fName);
t.setlName(s_lName);
t.setAge(s_age);
t.saveInBackground();
以前我一直在保存它,这似乎有用:
pObject = new ParseObject("Details");
pObject.put("fName",s_fName);
pObject.put("lName",s_lName);
pObject.put("Age",s_age);
pObject.saveInBackground();
我想我错过了某个地方的put()方法,但不确定在哪里调用它?
修改 这有效,但这是唯一的方法吗?
t.put("fName", s_fName);
t.put("lName", s_lName);
t.put("Age", s_age);
EDIT2
是否有更短的方法,而不是为每个值调用put?假如我将值传递给构造函数并仅为ParseObject-Class调用put()。像这样:
ParseDetailsItem t = new ParseDetailsItem(s_fName,s_lName,s_age);
t.saveInBackground();
答案 0 :(得分:2)
ParseObject的子类应该只有一个零参数构造函数。来自documentation:
对ParseObject进行子类化
创建ParseObject子类:
- 声明扩展ParseObject的子类。
- 添加@ParseClassName注释。它的值应该是你的字符串 将传递给ParseObject构造函数,并使所有未来 类名称引用不必要。
- 确保您的子类具有公共默认值(即零参数) 构造函数。您不能修改此中的任何ParseObject字段 构造
- 调用ParseObject.registerSubclass(YourClass.class) 在调用Parse.initialize()。
之前的应用程序构造函数 醇>
现在你应该做的是这样的事情:
@ParseClassName("ParseDetailsItem")
public class ParseDetailsItem extends ParseObject
{
private String fName;
private String lName;
private int age;
public ParseDetailsItem()
{
super();
}
public void setDetail(String fName,String lName,int age)
{
this.fName = fName;
this.lName = lName;
this.age = age;
}
}
然后调用它:
ParseDetailsItem t = new ParseDetailsItem();
t.setDetail(s_fName,s_lName,s_age);
t.saveInBackground();
如果你设法让它工作,请告诉我,在我的代码中,上面的工作正常