gpt4 book ai didi

java - PreferenceFragment 的使用和架构

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:25 25 4
gpt4 key购买 nike

在我的应用程序中,我有偏好:“pref1”,可能的值为 0、1、2。我在 SharedPreferences 类的帮助下保存它们。

  1. 我想提供一个用户界面来改变它。我创建类 SettingFragment extends PreferenceFragment 和带有 PreferenceScreen 根的 xml 文件。在 xml 文件中,我必须设置 android:key 字段以绑定(bind) UI 和 SharedPreferences

  2. 要在用户更改“pref1”后更改我的应用程序行为,我必须实现 OnSharedPreferenceChangeListener

  3. 同样在程序开始时我需要获取“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com