为什么我会得到默认值?

时间:2013-05-26 17:42:41

标签: java android sharedpreferences

在我的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并且效果很好

1 个答案:

答案 0 :(得分:1)

使用getSharedPreferences代替。像

SharedPreferences sharedPrefs = getSharedPreferences(name, MODE_PRIVATE);

来自文件here

  

getPreferences会查找SharedPreferences对象以进行访问   此活动专用的首选项。这简单地称之为   传入此基础的getSharedPreferences(String,int)方法   activity的类名作为首选项名称。

getSharedPreferences按名称检索SharedPreference

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