- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的应用程序中,我有偏好:“pref1”,可能的值为 0、1、2。我在 SharedPreferences
类的帮助下保存它们。
我想提供一个用户界面来改变它。我创建类 SettingFragment extends PreferenceFragment
和带有 PreferenceScreen
根的 xml 文件。在 xml 文件中,我必须设置 android:key
字段以绑定(bind) UI 和 SharedPreferences
。
要在用户更改“pref1”后更改我的应用程序行为,我必须实现 OnSharedPreferenceChangeListener
。
同样在程序开始时我需要获取“pref1”的值,根据保存的偏好同步程序状态。
所以当我想要添加/删除/修改我的应用程序设置单元时,我应该更改 3 个地方。看起来很糟糕。另一种选择是编写一个 class
,它有一个 SharedPreferences
类型的成员变量,并隐藏所有 SharedPreferences
键,并提供简单的 set/get 方法来获取偏好。但在这种情况下,我必须使用适用于 Android UI 的常规工具:布局。
任何使用 PreferenceFragment
的方法都是如此,而无需将有关偏好存储的内部结构(键的名称、默认值、它们的类型)的知识传播到几个地方,或者更好地使用普通布局?
最佳答案
正如您已经在问题中强调的那样,基于 SharedPreference
的设置的 3 个部分正在定义 -1. 供用户查看和更改设置的 UI 布局。2. 监听设置变化。3.初始化UI时读取设置。
您实际上不能在不影响您的功能的情况下取消任何部分。但是您可以以某种方式安排您的代码,以便在您想要添加新设置时将必须修改的文件(或代码中的位置)数量降至最低。您无法删除 UI building
部分。但是听力和阅读设置值可以包装在一个全局可访问的单例中(从你的任何地方)。你可以在你的应用程序初始化时初始化这个单一的,并且可以有简单的设置/获取接口(interface)。您仍然需要定义某种接口(interface),以便您可以监听更改。让单例类具有 API 来设置/删除这些接口(interface)。消费者可以设置/删除这些接口(interface),您可以决定接口(interface)的外观。
关于java - PreferenceFragment 的使用和架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308152/
PreferenceFragment 首选项直到我加载首选项 fragment 后才添加到我的 SharedPreference 映射中。 这是 PreferenceFragment 的预期行为吗?
背景 在以前版本的支持库中,我们可以使用标题来获得设置的主菜单屏幕,每个屏幕都会打开一个新的设置屏幕( fragment )。 问题 现在 header 消失了(如写的 here )一段时间,我认为它
我有一个 PreferenceFragment,我需要在其中添加自定义首选项。现在问题不在于自定义首选项本身,我已经扩展了一些 DialogPreference 创建我自己的首选项,并且我已经处理了保
我需要创建一个settings screen ,其中只有前半部分包含首选项。 我正在考虑添加 PreferenceFragment ,但是我需要支持较旧的设备(最低支持的 API 级别为 9),并且我
我正在创建一个带有主菜单的应用程序,这些菜单项之一将打开一个 PreferenceFragment。为了在应用程序内创建统一性,我希望主菜单看起来尽可能接近 PreferenceFragment。基本
public class MyPrefs extends PreferenceActivity { public static class MyPreferenceFragment exten
在首选项 fragment 中,您可以添加一个图标以显示在首选项的左侧。然而,没有图标的首选项对齐方式很时髦。我如何添加空格以使所有首选项具有相同的对齐方式。我在下面附上了一张图片。 我试过添加 an
当我的小部件添加到主屏幕时,我使用 PreferenceFragment 对其进行配置。用户根据自己的喜好编辑首选项后,如何关闭首选项 fragment ,以便随后可以根据设置添加小部件? 我正在考虑
我想在我的 PreferenceActivity 中获得一个选择文件对话框,我该如何实现?我可以以某种方式覆盖 PreferenceActivity 的 onClick 吗?安卓 API 14。 这是
我正在尝试使用 PreferenceFragment 而不是 PreferenceActivity,因为我不喜欢在我的代码中使用“已弃用”一词。 我已经构建了我的首选项布局和 PreferenceFr
在我的应用程序中,我有偏好:“pref1”,可能的值为 0、1、2。我在 SharedPreferences 类的帮助下保存它们。 我想提供一个用户界面来改变它。我创建类 SettingFragmen
我尝试使用 PreferenceFragment 从 Activity 调用它,当我从 ActionBar 单击一个图标时,我只是调用 FragmentPreferences whit Intent:
我在 Android 中加载 PreferenceFragment 时遇到问题。在这一点上,它是一个非常基本的实现,我想稍后在它工作时对其进行扩展。 问题是导航到 SettingsFragment 后
我又搜索了几个小时,但没有找到我理解/正在寻找的答案。 我有一个首选项屏幕,当用户单击菜单中的设置时它会打开。这行得通。但是,当用户完成设置时,我如何最好地让他关闭此屏幕。 我喜欢 Chrome 中的
我正在开发一个应用程序,我一直在使用支持库 fragment ,我偶然发现了这个问题,我似乎无法使用它添加 PreferencesFragment(用于设置)图书馆? 我找到了一些使用 v7 Pref
如标题所示,我的 PreferenceFragment 与我的工具栏重叠。我已经尝试过不同的解决方案,但问题仍然存在。希望有任何帮助。这是我的代码。 Activity : import android
我有包含左右 fragment 的多 Pane View 。在右边的 fragment 上,我正在启动一个 PreferenceFragment。问题是 fragment 看起来完全扭曲,没有任何风格
我创建了一个包含两个类别和一个复选框的 PreferenceFragment,但是,当我在我的应用程序中显示它时,背景似乎是透明的。 我可以看到主要 Activity 、字段和 PreferenceF
我正在尝试实现“设置”应用的外观,这意味着我正在寻找在类别之间添加分隔线的解决方案。 所以我以为我找到了解决方案,但不幸的是它对我不起作用。正如所建议的那样,我应该在布局中添加空首选项:
我想在我的首选项屏幕底部添加几个按钮,用于设置默认值和恢复默认值。 This答案不包括如何使用 PreferenceFragment 执行此操作。推荐的方法是什么? 加载首选项 fragment 的
我是一名优秀的程序员,十分优秀!