如何在安卓系统中将自动偏好文件与自定义偏好绑定

4

我刚刚为我正在创建的一个示例应用程序实现了偏好设置屏幕。我遵循了Google网站上提供的指南。一切都很好,我加载了一个ListPreference,并且能够存储和持久化它。但是这里也有一个小问题。我已经为该应用定义了一个自定义偏好设置文件,但是这个偏好设置屏幕的自动处理似乎会自己创建一个偏好设置文件。暂时我正在尝试让这段代码工作,但是它无法获取到自定义偏好设置文件。

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

    customPrefs.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        public boolean onPreferenceClick(Preference preference) {
            customPrefs.getEditor().commit();
            return true;
        }
    });

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

1
请告诉我们您如何实现并绑定到自定义首选项文件的代码。此外,为什么不使用默认实现呢?除非您需要不同的文件,否则没有必要去处理它。这只是多出来的一个拼写错误和问题来源…… - davidcesarino
这是我获取自定义偏好文件实例的方式:“Utils.setSpPreferences(getSharedPreferences(Utils.PREFS_NAME, 0))”。我确实想使用默认的偏好文件,但我一直在多个设备上测试我的应用程序,使用的是自定义偏好文件。现在我不想改变它。 - vikramjb
我按照你的建议,用默认偏好设置替换了自定义偏好设置。节省了很多时间。早些时候就应该这样做了。再次感谢。我已经给你点赞了,但如果你能将其发布为答案,我会接受它作为答案。 - vikramjb
1个回答

5
您可以通过调用getPreferenceManager().setSharedPreferencesName("file_name")方法为存储在PreferenceActivity中使用的偏好设置文件设置自定义名称。请记住,在调用addPreferencesFromResource之前,需要设置它,否则您的UI仍将将更改回错误的文件(默认文件)。
正如我所说,您不一定需要这样做,因为您可以使用系统提供的默认文件。如果/当您需要在其他地方读取首选项时,只需调用PreferenceManager.getDefaultSharedPreferences(Context context)即可。
我已经在另一个问题中解决了这些问题
还要记住,一些方法已被弃用。如果您正在编写新代码,请尽量避免它们,并遵循执行任务的新“片段方式”。

1
谢谢David。我最终使用了默认的偏好文件。 - vikramjb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接