在我的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并且效果很好
答案 0 :(得分:1)
使用getSharedPreferences代替。像
SharedPreferences sharedPrefs = getSharedPreferences(name, MODE_PRIVATE);
来自文件here
getPreferences会查找SharedPreferences对象以进行访问 此活动专用的首选项。这简单地称之为 传入此基础的getSharedPreferences(String,int)方法 activity的类名作为首选项名称。
和getSharedPreferences
按名称检索SharedPreference
。
在您的情况下,您使用getPreferences
仅返回SharedPreferences
这些活动。