如何在内部存储中保存 POJO Object
How to Save A POJO Object In Internal Storage
如标题所示,我无法通过 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,我认为这将是稍后 identify/retrieve 它们在另一个 activity.The 中的最佳方式我目前面临的问题是 SharedPreferences 不允许我存储 object。如何使用特定标识符保存用户在内部创建的每个 pojo?谢谢!
使用一些 ORM 免费软件库将它们存储在数据库中,例如 Sugar ORM
在 SharedPreferences
中没有保存对象 (POJO) 的直接方法。然而,还有另一种可能将 POJO
存储为 JSON
字符串(参见 this answer)。
使用这种方法,您只需要考虑它们的唯一键即可。
如标题所示,我无法通过 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,我认为这将是稍后 identify/retrieve 它们在另一个 activity.The 中的最佳方式我目前面临的问题是 SharedPreferences 不允许我存储 object。如何使用特定标识符保存用户在内部创建的每个 pojo?谢谢!
使用一些 ORM 免费软件库将它们存储在数据库中,例如 Sugar ORM
在 SharedPreferences
中没有保存对象 (POJO) 的直接方法。然而,还有另一种可能将 POJO
存储为 JSON
字符串(参见 this answer)。
使用这种方法,您只需要考虑它们的唯一键即可。