我正在从preferences.xml加载PreferenceActivity(Preferences.java)。在此PreferenceActivity中更改的所有值都将保存在XML文件packagename_preferences.xml
中packagename_preferences.xml是默认的共享首选项文件。
现在,我想从其他XML文件中加载值,可以说在同一PreferenceActivity(Preferences.java)中使用mode1_preferences.xml或mode2_preferences.xml或mode3_preferences.xml。此模式将取决于用户。 因此,布局保持不变,但值集不同。
我在PreferenceActivity的onCreate中使用了以下代码
PreferenceManager prefMgr = getPreferenceManager();
prefMgr.setSharedPreferencesName("myPref1");
addPreferencesFromResource(R.xml.preferences);
但是,getPreferenceManager()返回NULL
如何在PreferenceActivity中加载其他XML值文件?
答案 0 :(得分:0)
您可以使用以下方法。如果将null
或""
(空字符串)作为类型,则会得到默认的共享首选项xml。
public SharedPreferences getSharedPreferences(Context context, String type) {
String sharedPreferenceName = type == null || type.isEmpty()
? context.getPackageName() + "_preferences"
: type;
return SharedPreferences sharedPreferences = getSharedPreferences(sharedPreferenceName,
Context.MODE_PRIVATE);
}