在我的SettingsActivity上,我使用以下代码保存值:

SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("ClassName", strArrClasses.get(i));' // i is a variable inside a loop
int intClassID = i+1;
editor.putInt("ClassID", intClassID);
editor.commit();


我现在正尝试使用以下代码在MainActivity上使用键“ ClassID”获取SharedPreference的值:

SharedPreferences sharedPrefs = getPreferences(MODE_PRIVATE);
int intClassID =  sharedPrefs.getInt("ClassID", 543548564);


我现在的问题是我无法访问类ID,并且始终获得默认值。

编辑:

我已经检查了是否可以在我的SettingsActivity上获得ClassID,并且效果很好

最佳答案

使用getSharedPreferences代替。喜欢

SharedPreferences sharedPrefs = getSharedPreferences(name, MODE_PRIVATE);


自文件here


  getPreferences释放一个SharedPreferences对象以供访问
  此活动专用的首选项。这简单地称为
  通过传入此基础getSharedPreferences(String,int)方法
  活动的类别名称作为首选项名称。


getSharedPreferences通过名称检索SharedPreference

在您的情况下,您使用了getPreferences,它仅返回了这些活动的SharedPreferences

关于java - 为什么我找回默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16761972/

10-15 07:42