Android SavedReferences不保存
我正在玩android的SharedReferences 请参阅我的代码:Android SavedReferences不保存,android,sharedpreferences,onpause,Android,Sharedpreferences,Onpause,我正在玩android的SharedReferences 请参阅我的代码: @Override public void onPause() { super.onPause(); SharedPreferences prefs = this.getSharedPreferences( "com.example.app", Context.MODE_PRIVATE); for (int i = 0; i<meds.size(
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
for (int i = 0; i<meds.size(); i++){
prefs.edit().putString(String.valueOf(i), meds.get(i));
System.out.println(meds.get(i));
String str = prefs.getString("0", "");
System.out.println(str);
System.out.println(i);
}
prefs.edit().commit();
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
对于(int i=0;iput后提交)
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
for (int i = 0; i<meds.size(); i++){
prefs.edit().putString(String.valueOf(i), meds.get(i)).commit();
System.out.println(meds.get(i));
String str = prefs.getString("0", "");
System.out.println(str);
System.out.println(i);
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
对于(int i=0;iput后提交)
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
for (int i = 0; i<meds.size(); i++){
prefs.edit().putString(String.valueOf(i), meds.get(i)).commit();
System.out.println(meds.get(i));
String str = prefs.getString("0", "");
System.out.println(str);
System.out.println(i);
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
对于(int i=0;i在将字符串放入首选项后提交)
更正代码:
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
SharedReferences.Editor=prefs.edit();
对于(int i=0;i在将字符串放入首选项后提交)
更正代码:
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
SharedReferences.Editor=prefs.edit();
对于(int i=0;i像这样尝试
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
for (int i = 0; i<meds.size(); i++){
prefs.edit().putString(String.valueOf(i), meds.get(i));
System.out.println(meds.get(i));
System.out.println(str);
System.out.println(i);
}
prefs.edit().commit();
String str = prefs.getString("0", "");
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
对于(int i=0;i像这样尝试
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
for (int i = 0; i<meds.size(); i++){
prefs.edit().putString(String.valueOf(i), meds.get(i));
System.out.println(meds.get(i));
System.out.println(str);
System.out.println(i);
}
prefs.edit().commit();
String str = prefs.getString("0", "");
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
对于(int i=0;i请注意,prefs.edit()
返回共享首选项的新编辑器。
如果执行prefs.edit().commit();
提交操作将对新的编辑器对象进行操作。您必须像这样存储对编辑器的引用:
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
for (int i = 0; i<meds.size(); i++){
editor.putString(String.valueOf(i), meds.get(i));
System.out.println(meds.get(i));
String str = prefs.getString("0", "");
System.out.println(str);
System.out.println(i);
}
editor.commit();
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
SharedReferences.Editor=prefs.edit();
对于(int i=0;i请注意,prefs.edit()
返回共享首选项的新编辑器。
如果执行prefs.edit().commit();
提交操作将对新的编辑器对象进行操作。您必须像这样存储对编辑器的引用:
@Override
public void onPause() {
super.onPause();
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
for (int i = 0; i<meds.size(); i++){
editor.putString(String.valueOf(i), meds.get(i));
System.out.println(meds.get(i));
String str = prefs.getString("0", "");
System.out.println(str);
System.out.println(i);
}
editor.commit();
}
@覆盖
公共无效暂停(){
super.onPause();
SharedReferences prefs=this.getSharedReferences(
“com.example.app”,Context.MODE_PRIVATE);
SharedReferences.Editor=prefs.edit();
对于(int i=0;i)您的Answer不正确。问题是prefs.edit()每次创建新的编辑器对象时都会创建。您的Answer不正确。问题是prefs.edit()不正确每次都创建一个新的编辑器对象。不会更改任何内容。而且,在任何情况下,列表中只有一个对象,所以我不应该访问它吗?不会更改任何内容。而且,在任何情况下,列表中只有一个对象,所以我不应该访问它吗?听起来很合理,但我必须开始工作(这是爱好)在此之前无法进行测试。将在12小时后再次回复,或者只需将编辑器的引用存储在变量SharedReferences.editor editor=prefs.edit();
中并使用该变量。听起来很合理,但我必须开始工作(这是我的爱好)在此之前无法进行测试。将在12小时后再次答复,或者只需将编辑器的引用存储在变量SharedReferences.editor editor=prefs.edit();
中并使用该变量即可。