private void init() {
SharedPreferences prefs = getSharedPreferences("data", Context.MODE_PRIVATE);
// SET VALUE RECORD
record = prefs.getInt("record", 0);
prefs.edit().commit();
}
private void setRecord(int i ) {
SharedPreferences prefs = getSharedPreferences("data", Context.MODE_PRIVATE);
if(i > prefs.getInt("record", 0))
prefs.edit().putInt("record", i);
prefs.edit().commit();
}
private int getRecord() {
int rec;
SharedPreferences prefs = getSharedPreferences("data", Context.MODE_PRIVATE);
rec = prefs.getInt("record", 0);
prefs.edit().commit();
Toast toast = Toast.makeText(this, rec+"", Toast.LENGTH_SHORT);
toast.show();
return rec;
}
这段代码应该设置一个int并检索它,但它似乎没有设置它......你能看出为什么会这样吗?
答案 0 :(得分:1)
试
Editor editor = prefs.edit();
editor.putInt("record",i);
editor.commit();
答案 1 :(得分:1)
认为最好调用界面SharedPreferences.Editor
来编辑首选项,而不是使用prefs.edit().putInt("record", i);
。文档说......
对首选项的修改必须通过 SharedPreferences.Editor对象,以确保保留首选项值 当他们致力于存储时,处于一致的状态和控制。
如果您将setMethod
更改为以下内容,则应该有效...
private void setRecord(int i ) {
SharedPreferences prefs = getSharedPreferences("data", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
if(i > prefs.getInt("record", 0))
editor.putInt("record", i);
editor.commit();
}
我猜您在代码中的某处调用了上述方法setRecord
,因为我无法在您粘贴的代码段中看到它被调用。