Java 为什么我没有获得保存的首选项?

Java 为什么我没有获得保存的首选项?,java,android,Java,Android,在一个活动中,我使用以下代码保存了一些数据: SharedPreferences sharedPref = this.getPreferences(4); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString("myPhone", mCountryCode + mPhone); editor.commit(); 在另一个活动(在同一应用程序中)中,我尝试检索数据: SharedPre

在一个活动中,我使用以下代码保存了一些数据:

SharedPreferences sharedPref = this.getPreferences(4);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("myPhone",  mCountryCode + mPhone);
    editor.commit();
在另一个活动(在同一应用程序中)中,我尝试检索数据:

SharedPreferences sharedPref = this.getPreferences(4);
    myPhone=sharedPref.getString("myPhone", "");
但我得到的是一个空字符串

我做错了什么

SharedPreferences prefs = getSharedPreferences("your_file_name", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("yourStringName", "value_here");
editor.commit();
使用下面的代码访问它

SharedPreferences prefs = getSharedPreferences("your_file_name",
  MODE_PRIVATE); 
String string = prefs.getString("yourStringName",
  "default_value_here"); 
使用下面的代码访问它

SharedPreferences prefs = getSharedPreferences("your_file_name",
  MODE_PRIVATE); 
String string = prefs.getString("yourStringName",
  "default_value_here"); 
从文件中:

publicsharedreferences getPreferences(int模式)

检索
SharedReferences
对象以访问此活动专用的首选项。这只需通过传入此活动的类名作为首选项名称来调用底层的
getSharedReferences(String,int)
方法

如描述所述,使用此方法获得的首选项对活动是私有的

您需要使用以下方法:

SharedPreferences sharedPref = this.getSharedPreferences("YourApp", 4);
这将获取彼此共享的首选项。可以找到该确切方法的文档<代码>“YourApp”是首选项文件的名称,因此可以根据需要对其进行更改,尽管每次使用都必须相同。

来自文档:

publicsharedreferences getPreferences(int模式)

检索
SharedReferences
对象以访问此活动专用的首选项。这只需通过传入此活动的类名作为首选项名称来调用底层的
getSharedReferences(String,int)
方法

如描述所述,使用此方法获得的首选项对活动是私有的

您需要使用以下方法:

SharedPreferences sharedPref = this.getSharedPreferences("YourApp", 4);

这将获取彼此共享的首选项。可以找到该确切方法的文档<代码>“YourApp”是首选项文件的名称,因此可以根据需要对其进行更改,尽管每次使用都必须相同。

首先,确保您的mCountryCode和mPhone不是空字符串

您正在使用带有标志4(模式多进程)的getPreferences(),该标志:

这是Gingerbread(Android 2.3)及其之前的遗留(但未记录)行为,并且在针对此类版本时暗示了此标志

请改为使用以下命令保存:

SharedPreferences prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();

editor.putString("myPhone",  mCountryCode + mPhone);
editor.commit();
并加载:

SharedPreferences prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE);
myPhone = prefs.getString("myPhone", "");

更多信息和。

首先,确保您的mCountryCode和mPhone不是空字符串

您正在使用带有标志4(模式多进程)的getPreferences(),该标志:

这是Gingerbread(Android 2.3)及其之前的遗留(但未记录)行为,并且在针对此类版本时暗示了此标志

请改为使用以下命令保存:

SharedPreferences prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();

editor.putString("myPhone",  mCountryCode + mPhone);
editor.commit();
并加载:

SharedPreferences prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE);
myPhone = prefs.getString("myPhone", "");
更多信息和信息