Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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。出于

下面是一个模型,它可能比文字解释得更好。本质上,我想要一个列表,其中项目可以由用户动态添加/删除,并且每个项目都有可配置的设置屏幕

这里有两个关键点:

  • 添加到主首选项屏幕
  • 开始 按下项目时的结果活动。这项活动将显示 另一个首选项视图(滑块、复选框等),其中用户 可以操作这些,然后返回要存储在中的新值 数据结构
  • 图像:

    我建议沿着碎片之路走下去——特别是首选碎片:

    为什么我认为这会对你很好:

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


    实际上,动态创建首选项屏幕很容易。您可以通过代码(在API演示示例应用程序中搜索
    PreferenceFromCode.java
    )或通过扩展您可以编写的XML文件(
    PreferencesFromXml.java
    )来完成。困难的是为用户提供一个合理的用户界面和存储后端,以便编写和存储这些动态首选项集合。

    您的问题有点模糊,但最好将用户的数据存储在数据库中(并使用标准的
    CursorAdapter
    CursorLoader
    实例向用户显示此数据)
    CursorAdapter
    是为处理任意大的结果集而优化的,而
    PreferenceActivity
    和friends确实可以更好地处理固定的数据集

    Preferences的东西被设计为很容易为其特定的用例实现,但是如果您的用例不在该范围内——听起来像是这样——那么将您的数据压缩到Preferences模型将是一件麻烦的事情


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

    您能否澄清它应该如何工作?例如,如果用户按“Add Item”这意味着什么?你可以尝试使用一个数据库:父行是“其他首选项”,而子行是该首选项中的位置。很高兴知道这很简单-如果你真的给出了答案而不是说“去别处看看”就好了。即使是URL也会更好。看起来你指定的示例应用程序d不再可用。