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", "");
更多信息和信息