有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何加载动态可编辑首选项

我正在用新的导航抽屉构建一个应用程序。因此,我创建了几个片段,它们是我的应用程序页面。一个应用程序页面有一个首选项布局(扩展preferencefragments)。我有一个加载了动态值的listpreference。我在这个列表之后设置了另一个首选项屏幕。 现在我想做的是,根据用户从列表中选择的内容创建一个带有EditTextPreference的动态生成的首选项布局

我无法在xml中静态地执行此操作,因为我无法控制在应用程序编译之前需要多少EditTextPreference项。 有没有办法设置一个动态可加载的首选项?也许在java中完全没有xml? 安卓支持完全用java编写的布局吗?我不需要担心这会被保存在哪里。它也应该动态加载

比如(伪代码)

if (list.item3 == selected)
   show edittext1
   show edittext2
if (list.item1 == selected)
   show edittext8
   show edittext4
   show edittext9

有关更好的解释,请参见screenshot

非常感谢您的帮助


共 (1) 个答案

  1. # 1 楼答案

    看看这个:http://developer.android.com/guide/topics/ui/settings.html#Custom

    这确实是可能的,我在我的应用程序上做到了。在Java中,您需要创建一个扩展EditTextPreference的自定义类。然后重写要更改的方法。然后,您可以将自定义视图直接添加到xml中,就像添加普通的EditTextPreference一样,除非您创建一个名为EditTextPreference的xml元素,否则您将使用自定义首选项的完整包名

    例如:

    <com.your.name.CustomPreference
    <!  add all the andoid:x attributes you normaly would: >
    android:defaultValue="default string"
    etc,
    ....
    />