[英]Android throwing weird exception while using SharedPreferences
[英]problem While Sharing text in Android using SharedPreferences
我正在跟踪此链接以使用SharedPreferences.Am尝试在我的应用程序中应用,但是Shared值返回空值
这是我的代码分配共享变量
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值。它不能共享。
您使用了错误的密钥。
得到这样的字符串:
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();
切换此:
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.
首选项名称是“ hello”,而不是“ imagepath”。
String prefName = myPrefs.getString("hello", null);
而且我认为最好使用getString("hello", "")
。 这样, prefName
将永远不会为null
。
您已经在(SharedPreferences myPrefs = this.getSharedPreferences(“ myPrefs”,MODE_WORLD_READABLE);)中编写了“ myPrefs”
像这样更改它(SharedPreferences myPrefs = this.getSharedPreferences(“ pref”,MODE_WORLD_READABLE);)
在这里,我将(“ myPrefs”,MODE_WORLD_READABLE)中的“ myPrefs”更改为“ pref”。
现在,您可以选择一个(“ pref”,MODE_WORLD_READABLE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.