【问题标题】:Can Android Preferences/Settings screen be configured to use preferences other than 'DEFAULT' shared preferences?可以将 Android 首选项/设置屏幕配置为使用“默认”共享首选项以外的首选项吗?
【发布时间】:2016-08-14 01:13:10
【问题描述】:

Android 教程和示例展示了如何使用 Preference Fragment 和 Preference Activity 在应用中创建 设置屏幕

但是,以这种方式公开的所有首选项都会将其值设为“DefaultSharedPreferences”。

如果我们想将首选项值保存到其他(非默认/自定义)SharedPreferences。

我想到的用例类似于电子邮件应用程序,其中一个应用程序可能允许用户创建多个帐户,并且还为用户提供选项以不同方式保存不同帐户的设置。我认为可以选择的一种方法是“以编程方式”在“首选项”屏幕中添加首选项,并为每个屏幕指定不同的共享首选项目标(取决于帐户)。

但是,目前添加到 PreferenceFragment/Activity 的所有首选项似乎都将其值保存到 DefaultSharedPreferences。

对此的任何指针将不胜感激。

一个

【问题讨论】:

标签: android sharedpreferences settings android-preferences


【解决方案1】:

从技术上讲,这三行将从一方面完成工作。现在它为所有活动设置了 Preference,克服这个问题的简单方法是在需要的地方初始化默认 SharedPreferences,在需要的地方初始化 Custom SharedPreferences。

getPreferenceManager().setSharedPreferencesName("custom_prefs");
getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE);
addPreferencesFromResource(R.xml.prefs);

【讨论】:

  • 非常感谢 - 这真的很有帮助 - 一个后续问题 - 您的示例为我们提供了一种为整个设置活动配置首选项文件名的方法。是否可以将其设置为偏好类别或个人偏好?
  • 我已经编辑了答案。这个可以帮助你。
猜你喜欢
  • 1970-01-01
  • 2018-06-11
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 2014-10-26
  • 2012-11-19
相关资源
最近更新 更多