在ListPreference对话框中显示android:dialogMessage

8
我想在ListPreference对话框中添加一些消息,所以我考虑使用属性android:dialogMessage。然而,当我设置这个属性时,列表条目(使用android:entries和android:entryValues设置)不再显示在对话框中(似乎这是一个已知的bug,因为我在其他地方读到过)。因此,为了同时显示对话框消息和列表条目,我需要创建一个特殊的自定义ListPreference。
我考虑创建一个自定义类MyListPreference,稍微修改一下以实现这个目的。我会重写onCreateDialogView()来进行更改。但是我不太确定最干净的更改方式,因为我可以看到两种选择:
备选方案1-创建自定义XML布局 我将复制ListPreference对话框的默认xml布局并添加一个textView。在onCreateDialogView()中,我将膨胀这个自定义布局。
备选方案2-动态修改视图 在onCreateDialogView()中,我将调用super.onCreateDialogView()并动态添加一个textView到返回的视图中。
问题:你建议采取哪种方法?如果备选方案1是最佳选择,在哪里可以找到ListPreference对话框的默认XML布局,以便我可以自定义它?
谢谢您的帮助。
1个回答

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的对话框也是一样的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接