在ListPreference对话框中显示android:dialogMessage

时间:2013-06-24 14:26:49

标签: android xml dialog listpreference

我想在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布局,以便我可以自定义它?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

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

我敢打赌它与ListPreference的Dialog相同。