我刚刚为我正在创建的其中一个示例应用实施了首选项屏幕。我按照谷歌网站上给出的指南。一切都很好,我加载了一个ListPreference,我能够存储它并坚持它。这里还有一个小问题。我已经为应用程序定义了一个自定义首选项文件,但这种自动处理首选项screeen似乎是自己创建一个首选项文件。现在我试图让这段代码工作,但它没有获得自定义首选项文件。
final Preference customPrefs = getPreferenceScreen().findPreference(Utils.PREFS_NAME);
customPrefs.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
customPrefs.getEditor().commit();
return true;
}
});
有没有办法将自定义首选项文件与此自动首选项类绑定在一起?
答案 0 :(得分:5)
您可以通过调用PreferenceActivity
方法为getPreferenceManager().setSharedPreferencesName("file_name")
中设置的用于存储首选项的文件设置自定义名称。请记住,您需要在调用addPreferencesFromResource
之前设置,否则您的UI仍会将内容更改回错误的文件(默认文件)。
正如我所说,你不需要这样做,因为你可以使用系统提供的默认文件。如果您需要在其他地方阅读首选项,则可以拨打PreferenceManager.getDefaultSharedPreferences(Context context)
。
我已经解决了those remarks in another question。
还要记住,有些方法已被弃用。如果您正在编写新代码,请尽量避免使用它们并遵循新的“片段方式”。