安卓偏好设置 - 它们可以是分层的吗?

3
我可以读写共享偏好设置,并验证生成的XML文件看起来正确。但是,是否可能构建偏好设置的层次结构而不仅仅是一个平面列表呢?
我直接从代码中访问偏好设置,因此解决方案不能假定应用程序中存在偏好设置屏幕。我发现了PreferenceGroup、PreferenceCategory和PreferenceManager类,但它们似乎假定存在偏好设置屏幕。

如果你不是在谈论PreferenceScreen,那么请定义一下“分层”的含义。你可以声明任意数量的首选项依赖于给定的首选项(http://developer.android.com/reference/android/preference/Preference.html#attr_android:dependency)。 - Turnsole
@Hydrangea:所谓的层次结构是指一个项目可以有子项目的结构。偏好设置使用SharedPreferences.Editor存储,并驻留在XML文件中。由于XML中可以使用层次结构,我希望找到一种方法来构建我的偏好数据的结构表示形式。 - Dabbler
1个回答

1
但是有可能建立一个偏好的层次结构,而不仅仅是一个平级的列表吗?
抱歉,不能。从你提出的问题中,不清楚为什么你首先选择了使用SharedPreferences,而不是其他持久化数据模型(数据库、XML文件、JSON文件等)。

感谢您的回答。我可能正在尝试错误的方法。基本上,我正在移植一个在Windows注册表中存储设置的Windows应用程序。该应用程序通过抽象接口访问持久性存储(注册表或其他任何东西),因此我需要做的就是(在这个问题的范围内)派生一个新类,实现类似于Android注册表的东西。例如,删除一个键意味着删除所有子键。由于共享属性驻留在XML文件中,这似乎是一种有前途的方法 - 我只是找不到用于任何更多内容的API超出了一个平面列表。 - Dabbler
因此,也许一个独立的XML文件是更好的方法,因为Java似乎提供了很好的读写XML的功能。谢谢并点赞 :-) - Dabbler
@Dabbler:通常情况下,SharedPreferences是注册表的一个很好的替代品,但仅限于键值对的简单列表。如果您在注册表中进行复杂的使用,最好选择其他数据存储方式。 - CommonsWare

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