如何动态创建Android首选项?
下面是一个模型,它可能比文字解释得更好。本质上,我想要一个列表,其中项目可以由用户动态添加/删除,并且每个项目都有可配置的设置屏幕 这里有两个关键点:如何动态创建Android首选项?,android,android-preferences,Android,Android Preferences,下面是一个模型,它可能比文字解释得更好。本质上,我想要一个列表,其中项目可以由用户动态添加/删除,并且每个项目都有可配置的设置屏幕 这里有两个关键点: 添加到主首选项屏幕 开始 按下项目时的结果活动。这项活动将显示 另一个首选项视图(滑块、复选框等),其中用户 可以操作这些,然后返回要存储在中的新值 数据结构 图像: 我建议沿着碎片之路走下去——特别是首选碎片: 为什么我认为这会对你很好: 此外,显示的首选项将遵循 系统首选项。创建首选项的层次结构很容易 (可以在多个屏幕上显示)通过XML。出于
我建议沿着碎片之路走下去——特别是首选碎片: 为什么我认为这会对你很好: 此外,显示的首选项将遵循 系统首选项。创建首选项的层次结构很容易 (可以在多个屏幕上显示)通过XML。出于这些原因,它 建议使用此片段(作为超类)来处理 应用程序中的首选项
实际上,动态创建首选项屏幕很容易。您可以通过代码(在API演示示例应用程序中搜索
PreferenceFromCode.java
)或通过扩展您可以编写的XML文件(PreferencesFromXml.java
)来完成。困难的是为用户提供一个合理的用户界面和存储后端,以便编写和存储这些动态首选项集合。您的问题有点模糊,但最好将用户的数据存储在数据库中(并使用标准的CursorAdapter
和CursorLoader
实例向用户显示此数据)CursorAdapter
是为处理任意大的结果集而优化的,而PreferenceActivity
和friends确实可以更好地处理固定的数据集
Preferences的东西被设计为很容易为其特定的用例实现,但是如果您的用例不在该范围内——听起来像是这样——那么将您的数据压缩到Preferences模型将是一件麻烦的事情
如果您只是喜欢Preferences UI,那么您当然可以查看Android源代码,看看它是如何实现的,同时仍然让您自己的逻辑驱动该UI的变体。您能否澄清它应该如何工作?例如,如果用户按“Add Item”这意味着什么?你可以尝试使用一个数据库:父行是“其他首选项”,而子行是该首选项中的位置。很高兴知道这很简单-如果你真的给出了答案而不是说“去别处看看”就好了。即使是URL也会更好。看起来你指定的示例应用程序d不再可用。