抱歉,如果这是一个愚蠢的问题。我正在学习使用SharedPreferences,我遇到了一些问题: 我正在使用此代码保存到SharedPreferences:
public void saveInMemory(String[] saveThis){
StringBuilder sb = new StringBuilder();
prefs = PreferenceManager.getDefaultSharedPreferences(OIBListActivity.this);
editor = prefs.edit();
for (int i = 0; i < saveThis.length; i++) {
sb.append(saveThis[i]);
sb.append(";");
}
editor.putString("listaOIB", sb.toString());
editor.commit();
}
此代码加载已保存的值:
public String loadFromMemory(String id){
prefs = PreferenceManager.getDefaultSharedPreferences(OIBListActivity.this);
return prefs.getString(id, "NOPREFSAVED");
}
我已经在外面声明了prefs和编辑器,所以这不应该是一个问题:
private SharedPreferences prefs;
private SharedPreferences.Editor editor;
现在,我的问题是,当我输入此活动并保存我从其他活动收到的文件时(通过putExtra,如果有帮助),然后继续加载它一切正常。 然后我重新输入我的活动而不向其发送任何文件(来自其他活动)并尝试使用 loadFromMemory()并且它不起作用。我的理解是它本应保存我第一次输入Activity时的文件,然后在我想要的时候加载它。
任何帮助?
答案 0 :(得分:0)
添加方法并在添加时调用,其他在您获取时调用
//添加数据时调用此方法
public static void setAlarmHourTime(String value, Activity activity) {
SharedPreferences.Editor pref = activity.getSharedPreferences("ALARMHOURTIME", Context.MODE_PRIVATE).edit();
pref.putString("alarmhourtime", value);
pref.commit();
}
//在您检索数据时调用此方法
public static String getAlarmHourTime(Activity activity) {
SharedPreferences prefs = activity.getSharedPreferences("ALARMHOURTIME", Context.MODE_PRIVATE);
return prefs.getString("alarmhourtime","7");
}
答案 1 :(得分:0)
如果您要检索editor.putString("listaOIB", sb.toString());
中保存的内容,则您在loadFromMemory
中传递的ID应为&#34; listaOIB&#34;。
是这样的吗?