我正在关注此link以使用SharedPreferences.Am尝试在我的应用程序中应用但共享值返回空值
这是我的代码分配共享变量
SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
SharedPreferences.Editor editor= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
此处代码可访问共享变量
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String prefName = myPrefs.getString("imagepath",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
这里prefName返回null值。它不能共享。
答案 0 :(得分:0)
你使用了错误的密钥。
得到这样的字符串:
String prefName = myPrefs.getString("hello",null);
您还使用了两个不同的sharedPreference名称:
SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
请确保您使用相同的SharedPreference
撰写和阅读。
您在SharedPreference中编写的代码应如下所示:
SharedPreferences sharedPreferences = getSharedPreferences("pref",0);
SharedPreferences.Editor edito r= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
从SharedPreference中读取内容应如下所示:
SharedPreferences myPrefs = this.getSharedPreferences("pref", 0);
String prefName = myPrefs.getString("hello",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
答案 1 :(得分:0)
切换它:
editor.putString("imagepath", l);
您还需要将“null”的可能返回值更改为更可接受的错误返回值,可能为0或-1。
String prefName = myPrefs.getString("imagepath","0");
abstract SharedPreferences.Editor putString(String key, String value)
//Set a String value in the preferences editor, to be written back once commit() or apply() are called.
答案 2 :(得分:0)
首选项名称是“hello”,而不是“imagepath”。
String prefName = myPrefs.getString("hello", null);
我认为最好使用getString("hello", "")
。这样,prefName
永远不会是null
。
答案 3 :(得分:0)
您已在(SharedPreferences myPrefs = this.getSharedPreferences(“myPrefs”,MODE_WORLD_READABLE)中写过“myPrefs”;)
像这样更改(SharedPreferences myPrefs = this.getSharedPreferences(“pref”,MODE_WORLD_READABLE);)
这里我将(“myPrefs”,MODE_WORLD_READABLE)中的“myPrefs”更改为“pref”。
现在你是coorect one(“pref”,MODE_WORLD_READABLE)