如何动态创建Android首选项?

下面的模型可能比单词解释得更好。 基本上,我想要一个列表,用户可以动态添加/删除项目,每个项目都有可配置的设置屏幕。

所以这里有两个关键:

  1. 添加到主要首选项屏幕
  2. 按下某个项目时启动activityForResult。 此活动将显示另一个首选项视图(滑块,checkbox等),用户可以在其中操作这些视图,然后返回要存储在数据结构中的新值。

图片:
http://i.stack.imgur.com/eZsfh.png

Solutions Collecting From Web of "如何动态创建Android首选项?"

实际上,动态创建首选项屏幕很容易。 您可以在代码中执行此操作(在PrecuryFromCode.java中搜索API演示示例应用程序)或扩展您可以编写的XML文件( PreferencesFromXml.java )。 什么是困难的是为用户提供合理的UI和存储后端来组合和存储这些动态偏好集合。

我建议沿着Fragments的路走 – 特别是PreferenceFragment: http : //developer.android.com/reference/android/preference/PreferenceFragment.html

为什么我认为这对你有用:

此外,显示的首选项将遵循系统首选项的视觉样式。 可以通过XML轻松创建首选项层次结构(可以在多个屏幕上显示)。 由于这些原因,建议使用此片段(作为超类)来处理应用程序中的首选项。

您的问题有点模糊,但最好通过将用户的数据存储在数据库中(并使用标准的CursorAdapterCursorLoader实例向用户显示此数据)来解决,而不是试图强制所有内容进入Preferences框架。 CursorAdapter针对处理任意大的结果集进行了优化,而PreferenceActivity和朋友使用固定的数据集确实更好地工作。

首选项的东西设计为易于实现其特定的用例,但如果你的用例超出了这个范围 – 而且听起来像是这样 – 将数据压缩到首选模型会很麻烦。

如果您只是喜欢“首选项”用户界面,那么您当然可以查看Android源代码,看看它是如何实现的,同时仍让您自己的逻辑驱动该UI的变体。