Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SharedReferences在Android中共享文本时出现问题_Java_Android_Sharedpreferences - Fatal编程技术网

Java 使用SharedReferences在Android中共享文本时出现问题

Java 使用SharedReferences在Android中共享文本时出现问题,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在使用SharedReferences。我试图在我的应用程序中应用,但共享值返回空值 这里是分配共享变量的代码 SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE); SharedPreferences.Editor editor= sharedP

我正在使用SharedReferences。我试图在我的应用程序中应用,但共享值返回空值

这里是分配共享变量的代码

                           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,因此无法将整数传递到字符串中