在ListPreference对话框中显示android:dialogMessage

mus*_*ikk 5 xml android 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布局,以便我可以自定义它?

谢谢您的帮助

koe*_*oem 1

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

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

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