Java 使用SharedReferences在Android中共享文本时出现问题
我正在使用SharedReferences。我试图在我的应用程序中应用,但共享值返回空值 这里是分配共享变量的代码Java 使用SharedReferences在Android中共享文本时出现问题,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在使用SharedReferences。我试图在我的应用程序中应用,但共享值返回空值 这里是分配共享变量的代码 SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE); SharedPreferences.Editor editor= sharedP
SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
SharedPreferences.Editor editor= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
这里是访问共享变量的代码
此处prefName返回空值。它不能共享
你用错钥匙了 获取如下字符串:
String prefName = myPrefs.getString("hello",null);
SharedPreferences sharedPreferences = getSharedPreferences("pref",0);
SharedPreferences.Editor edito r= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
SharedPreferences myPrefs = this.getSharedPreferences("pref", 0);
String prefName = myPrefs.getString("hello",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
您还使用了两个不同的SharedReference名称:
SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
请确保您在同一共享参考中书写和阅读
要在SharedReference中编写的代码应如下所示:
String prefName = myPrefs.getString("hello",null);
SharedPreferences sharedPreferences = getSharedPreferences("pref",0);
SharedPreferences.Editor edito r= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
SharedPreferences myPrefs = this.getSharedPreferences("pref", 0);
String prefName = myPrefs.getString("hello",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
要从SharedReference读取,应如下所示:
String prefName = myPrefs.getString("hello",null);
SharedPreferences sharedPreferences = getSharedPreferences("pref",0);
SharedPreferences.Editor edito r= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
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");
资料来源:
首选项名称是hello,而不是imagepath
String prefName = myPrefs.getString("hello", null);
我认为最好使用getStringhello。这样,prefName将永远不会为空。您已在SharedReferences myPrefs=This.getSharedReferencesMyPrefs中写入myPrefs,模式为“世界可读” 像这样更改SharedReferences myPrefs=this.getSharedReferencesPref,MODE_WORLD_READABLE 在这里,我已经将myPrefs中的myPrefs,MODE_WORLD_READABLE更改为pref
现在,您选择正确的选项,模式为“世界可读”正在更改为SharedReferences,它再次返回空值SirI认为hello是imagepath键的值?因此,他需要切换他的.putString语句。从他使用putString的方式来看,hello是键,imagepath是值。先生,我将prefName声明为String,因此无法将整数传递到字符串中