如何将自动首选项文件绑定到android中的自定义首选项

vik*_*mjb 4 android preferenceactivity sharedpreferences listpreference

我刚刚为我正在创建的一个示例应用程序实现了一个首选项屏幕.我按照谷歌网站上给出的指南.一切都很好,我加载了一个ListPreference,我能够存储它并坚持它.这里还有一个小问题.我已经为应用程序定义了一个自定义首选项文件,但这种自动处理首选项screeen似乎是自己创建一个首选项文件.现在我试图让这个代码工作,但它没有得到自定义首选项文件.

        final Preference customPrefs = getPreferenceScreen().findPreference(Utils.PREFS_NAME);

    customPrefs.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        public boolean onPreferenceClick(Preference preference) {
            customPrefs.getEditor().commit();
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)

有没有办法将自定义首选项文件与此自动首选项类绑定在一起?

dav*_*ino 5

您可以PreferenceActivity通过调用其getPreferenceManager().setSharedPreferencesName("file_name")方法为用于存储首选项的文件设置自定义名称.请记住,您需要调用之前设置它addPreferencesFromResource,否则您的UI仍会将内容更改回错误的文件(默认文件).

正如我所说,您不需要这样做,因为您可以使用系统提供的默认文件.如果/当您需要在其他地方阅读首选项时,您可以随时致电PreferenceManager.getDefaultSharedPreferences(Context context).

我已经在另一个问题上谈到了这些评论.

还要记住,有些方法已被弃用.如果您正在编写新代码,请尽量避免使用它们并遵循新的"片段方式".