Android 无法保存扩展ParseObject的类

Android 无法保存扩展ParseObject的类,android,parse-platform,Android,Parse Platform,我正在试图保存ParseObject。当在Parse上创建类时,似乎没有添加值和必需的行 ParseDetailsItem @ParseClassName("ParseDetailsItem") public class ParseDetailsItem extends ParseObject { private String fName; private String lName; private int age; public ParseDetailsItem(String fN

我正在试图保存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;
    }
}
保存()

以前我一直这样保存它,而且似乎很有效:

    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类调用put()。像这样:

ParseDetailsItem t = new ParseDetailsItem(s_fName,s_lName,s_age);
t.saveInBackground();

ParseObject的子类应该只有一个零参数构造函数。从:

子类化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();
    

    让我知道,如果你设法让它工作,在我的代码中,上面的工作刚刚好

    是的。它现在通过添加零参数构造函数来工作。但是现在我必须调用put()三次,有没有一种更短的方法?(我在问题的末尾添加了它)您可以添加一个三参数设置器,在一次调用中设置它们。稍后我可以用一个例子来扩展我的答案。我确实尝试过使用setter并为类调用saveInBackground,但一开始并不奏效。它位于上面的save()方法中
    ParseDetailsItem t = new ParseDetailsItem();
    t.setDetail(s_fName,s_lName,s_age);
    t.saveInBackground();