我使用
创建SharePreference
sharedPreference=getSharedPreferences(SHARED_PREFE_LOCATION, 0);
preferenceEditor=mSharedPreference.edit();
preferenceEditor.commit();
并使用Preference From Code
SDK示例设置了一个屏幕。
现在我想要的是当用户使用生成的代码PreferenceScreen
更改首选项时,更改应该反映在首选项文件SHARED_PREFE_LOCATION
(来自我的代码变量。)而不是defaultSharedPreference
中。
我该怎么做。
修改
我知道我可以在PreferenceChangeListener
上实施并反映所需文件中的更改。但那很乏味。有没有直接的方式?
答案 0 :(得分:1)
您可以使用PreferenceManager
设置首选项名称。这将使您的首选项存储在您指定的位置。我建议您在向首选项活动添加任何首选项之前执行此操作,这样任何默认值都不会保存到默认位置:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getPreferenceManager().setSharedPreferencesName(SHARED_PREFE_LOCATION);
addPreferencesFromResource(R.xml.preferences);
}