Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android首选项-它们可以分层吗?_Android_Android Preferences - Fatal编程技术网

Android首选项-它们可以分层吗?

Android首选项-它们可以分层吗?,android,android-preferences,Android,Android Preferences,我可以读取和写入共享首选项,并已验证生成的XML文件是否正确。但是,有没有可能建立一个偏好层次结构,而不仅仅是一个简单的列表 我直接从代码访问首选项,因此解决方案不能假设应用程序中存在首选项屏幕。我找到了PreferenceGroup、PreferenceCategory和PreferenceManager类,但它们似乎假设存在preferences屏幕 但是,有没有可能建立一个偏好层次结构,而不仅仅是一个简单的列表 不,对不起。从您的问题的其余部分来看,不清楚为什么您首先要使用SharedRe

我可以读取和写入共享首选项,并已验证生成的XML文件是否正确。但是,有没有可能建立一个偏好层次结构,而不仅仅是一个简单的列表

我直接从代码访问首选项,因此解决方案不能假设应用程序中存在首选项屏幕。我找到了PreferenceGroup、PreferenceCategory和PreferenceManager类,但它们似乎假设存在preferences屏幕

但是,有没有可能建立一个偏好层次结构,而不仅仅是一个简单的列表


不,对不起。从您的问题的其余部分来看,不清楚为什么您首先要使用
SharedReferences
,而不是另一个持久数据模型(数据库、XML文件、JSON文件等)。

如果您不是在谈论PreferenceScreen,请定义您所说的“层次结构”是什么意思。您可以声明任意数量的首选项依赖于给定的首选项()。@hydangea:我所说的层次结构是指一个项目可以有子项目的结构。首选项使用SharedReferences.Editor存储,它们驻留在一个XML文件中。由于XML中可以使用层次结构,我希望找到一种方法来构建我偏好数据的结构表示。谢谢您的回答。很可能我尝试了错误的方法。基本上,我正在移植一个在Windows注册表中存储设置的Windows应用程序。应用程序通过一个抽象接口访问持久性存储(注册表或其他任何东西),所以我需要做的就是(在这个问题的范围内)派生一个新类,它实现了类似于Android注册表的东西。例如,删除密钥意味着删除所有子密钥。由于共享属性驻留在一个XML文件中,这似乎是一种很有前途的方法——我只是找不到一个简单列表以外的API。因此,也许我自己的一个单独的XML文件是一种更好的方法,因为Java似乎为读写XML提供了非常好的工具。谢谢和+1:-)@Dabbler:一般来说,
SharedReferences
是注册表的一个很好的替代品,但只适用于键值对的平面列表。但是,如果您对注册表进行了复杂的使用,那么最好使用其他数据存储。