【问题标题】:How to bind the automatic preferences file to the custom preferences in android如何将自动首选项文件绑定到android中的自定义首选项
【发布时间】:2012-04-17 02:32:21
【问题描述】:

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

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

    customPrefs.setOnPreferenceClickListener(new OnPreferenceClickListener() {

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

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

【问题讨论】:

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

标签: android sharedpreferences preferenceactivity listpreference


【解决方案1】:

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

正如我所说,您不需要这样做,因为您可以使用系统提供的默认文件。如果/当您需要在其他地方阅读偏好设置时,您可以拨打PreferenceManager.getDefaultSharedPreferences(Context context)

我已经联系了those remarks in another question

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

【讨论】:

  • 谢谢大卫。我最终使用了默认的首选项文件。
猜你喜欢
  • 1970-01-01
  • 2013-04-13
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 2011-04-03
相关资源
最近更新 更多