6

我想在 ListPreference 对话框中添加一些消息,所以我考虑使用属性 android:dialogMessage。

但是,当我设置此属性时,对话框中不再显示列表条目(使用 android:entries 和 android:entryValues 设置)(这似乎是一个已知的错误,因为我可以在其他地方读到它)

所以看来我可能需要制作一个特殊的自定义 ListPreference 才能同时显示 dialogMessage 和列表条目。

我考虑创建一个自定义类 MyListPreference 将为此目的稍作修改。我会覆盖 onCreateDialogView() 来进行更改。但是,我有点不确定要做出的最干净的更改,因为我可以看到两种选择:

备选方案 1- 创建自定义 XML 布局 我将复制 ListPreference 对话框的默认 xml 布局并添加一个 textView。在 onCreateDialogView() 我会膨胀这个自定义布局。

备选方案 2- 即时修改视图 在 onCreateDialogView() 中,我将调用 super.onCreateDialogView() 并动态地将 textView 添加到它返回的视图中。

问题:你建议做什么?如果备选方案 1 是最好的,我在哪里可以找到 ListPreference 对话框的默认 XML 布局以便我可以自定义它?

谢谢您的帮助

4

1 回答 1

1

我会先尝试替代#2。我刚刚开发了一个包含大约 50 个设置的巨大设置屏幕,并发现在 Preference 的 onCreateView() 中修改视图非常简单。

@Override
protected View onCreateView(ViewGroup parent) {
    View v = super.onCreateView(parent);
    ((TextView) v).setText(this.text);
    return v;
}

我敢打赌它与 ListPreference 的对话框相同。

于 2013-06-24T15:55:46.447 回答