Android 如何在ListPreference中使用自定义AlertDialog?

Android 如何在ListPreference中使用自定义AlertDialog?,android,android-alertdialog,Android,Android Alertdialog,我正在为android编写一个简单的应用程序,我想在PreferenceScreen的ListPreference中使用一个自定义的AlertDialog(无负按钮,更改字体大小),所以我扩展了ListPreference,如下所示: public class ListPreferenceEx extends ListPreference { public ListPreferenceEx(Context context, AttributeSet attrs) { su

我正在为android编写一个简单的应用程序,我想在
PreferenceScreen
ListPreference
中使用一个自定义的
AlertDialog
(无负按钮,更改字体大小),所以我扩展了
ListPreference
,如下所示:

public class ListPreferenceEx extends ListPreference {
    public ListPreferenceEx(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {        
        super.onPrepareDialogBuilder(builder); // To change body of overridden
        builder.setNegativeButton(null, null);
        builder.setTitle(null);
    }
}
然后单击
ListPreferenceEx
,然后弹出
列表(AlertDialog)
而不带标题和负片按钮,就像弹出菜单一样。但是,我不知道如何更改此列表的字体大小。我知道
AlertDialog.Builder
可以使用布局,但只能在构造函数中使用:

builder = new AlertBuilder(new ContextThemeWrapper(this.getContext(), R.style.xxxTheme));
当我将上述代码放入onPrepareDialogBuilder并运行它时,我无法得到正确的结果:

案例1:(完全没有列表显示)

案例2:(无效,字体大小不变)


如何在
onPrepareDialogBuilder
或其他替代方法中设置
AlertDialog.Builder的
字体大小?或者使用
列表首选项ex
中的自定义
警报对话框
?请帮帮我,谢谢

是什么阻止了您在“首选项”屏幕中使用专门的警报布局文件?请参阅我编辑的问题。应用程序崩溃后,logcat中有什么内容?很抱歉,我的内存不足,请参阅编辑的详细信息。
builder = new AlertDialog.Builder(new ContextThemeWrapper(this.getContext(), R.style.ListDlgTheme));
super.onPrepareDialogBuilder(builder);
super.onPrepareDialogBuilder(builder);
builder = new AlertDialog.Builder(new ContextThemeWrapper(this.getContext(), R.style.ListDlgTheme));