我正在尝试顶部答案中的解决方案:Android ArrayList of custom objects - Save to SharedPreferences - Serializable?
我正在尝试将自定义对象的ArrayList保存到SharedPreferences。
SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(baseApplication);
SharedPreferences.Editor prefsEditor = appSharedPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(masterPinList);
prefsEditor.putString("masterPinList", json);
prefsEditor.apply();
masterPinList
是自定义对象的数组列表(Pin
)。
错误是:
java.lang.SecurityException: Can not make a java.lang.reflect.Method constructor accessible
此行发生错误:
String json = gson.toJson(masterPinList);
有什么问题?
答案 0 :(得分:0)
您可以尝试向类中添加一个空构造函数,因为这将用于设置值。
public className() {
}
答案 1 :(得分:0)
您的对象是否可序列化?这可能是问题所在。这是一个示例类
public class PlanDateObject {
@SerializedName("DateList")
private List<String> dateList;
@SerializedName("PlanList")
private List<Plan> planList;
public List<String> getDateList() {
return dateList;
}
public void setDateList(List<String> dateList) {
this.dateList = dateList;
}
public List<Plan> getPlanList() {
return planList;
}
public void setPlanList(List<Plan> planList) {
this.planList = planList;
}
}