如何在SharedReferences中保存类对象引用值并在android中检索它?
现在我正在尝试将类对象值存储在SharedReferences中并检索它。我仍然引用了很多链接,我无法在其中存储对象值 下面是我的代码:如何在SharedReferences中保存类对象引用值并在android中检索它?,android,sharedpreferences,gson,Android,Sharedpreferences,Gson,现在我正在尝试将类对象值存储在SharedReferences中并检索它。我仍然引用了很多链接,我无法在其中存储对象值 下面是我的代码: SharedPreferences mPrefs = getContext().getPreferences(MODE_PRIVATE); SharedPreferences.Editor prefsEditor = mPrefs.edit(); Gson gson = new Gson(); String json = null; prefsEditor.
SharedPreferences mPrefs = getContext().getPreferences(MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = null;
prefsEditor.putString(json, gson.toJson(object));
prefsEditor.commit();
例外情况:
java.lang.StackOverflowError
at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:375)
对象需要实现可序列化,以便Gson可以将对象转换为字符串。大概是这样的:
public class User implement Serializable {
private static final long serialVersionUID = 1234567891234567891L;
private String name;
private int age;
// constructor
public User(String name, int age) {
this.name = name;
this.age = age;
}
// setter and getter.
}
然后可以使用Gson保存对象:
User user = new User("Terminator", 50);
SharedPreferences mPrefs = getContext().getPreferences(MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(user);
prefsEditor.putString("User", json);
prefsEditor.commit();
可能问题出在字符串json=null?试试字符串json=“”@SuhailMehta你想让我放置任何方法或整个类吗?@Sergeyyamschchikov我甚至尝试了,通过放置字符串json=gson.toJson(object)而不是null,但我仍然得到Stackoverflow异常Stackoverflow当你在模型中有循环引用时会出现你是否使用其他库,如
ActiveAndroid
?