如何在内部存储中保存POJO对象

时间:2015-01-25 20:47:47

标签: java android pojo

标题显示我无法通过SharedPreferences将pojo保存到我的手机内部存储中。这是我创建pojo的代码:

class dataPOJO{
String fileName;
String cName;
String[] cN;


public String getName() {
    return cName;
}

public void setName(String cName) {
    this.cName = cName;
}

public String getFileName() {
    return fileName;
}

public void setFileName(String fileName) {
    this.fileName = fileName;
}

public String[] getText() {
    return cN;
}

public void setExtras(String[] cN) {
    this.cN = cN;
}

public String toString() {
    String savePackage = "File Name: " + getFileName() + "\n";
    savePackage += "CName: " + getName() + "\n";
    savePackage += getText() + "\n";
    return savePackage;
}
}

我试图拯救pojo:

fileName.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //doc identifier stuff
            SharedPreferences sharedPrefs = getSharedPreferences("DOC_INT",Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPrefs.edit();
            doc_id++;
            editor.putInt("doc_id",doc_id);
            editor.commit();
            //dataPojo stuff
            SharedPreferences sharedSavePrefs = getSharedPreferences("DATA"+doc_id,Context.MODE_PRIVATE);
            SharedPreferences.Editor save_editor = sharedSavePrefs.edit();


            dataPojo.setNotes(save_text_notes);
            dataPojo.setName(save_text_class_name);
            dataPojo.setFileName(file_name);











        }
    });

我有一个doc标识符int的原因是因为我打算让用户保存多个dataPojos,我认为这将是以后在另一个活动中识别/检索它们的最佳方法。我面临的当前问题是SharedPreferences不允许我存储对象。如何使用特定标识符保存用户在内部创建的每个pojo?谢谢!

2 个答案:

答案 0 :(得分:1)

使用某些ORM免费软件库(例如Sugar ORM

)将它们存储在数据库中

答案 1 :(得分:1)

SharedPreferences中没有直接的方法来保存对象(PO​​JO)。但是,还有另一种方法可以将POJO存储为JSON字符串(请参阅this answer)。 使用这种方法,您只需要考虑它们的唯一键。