【问题标题】:How to set the theme of an AlertDialog如何设置 AlertDialog 的主题
【发布时间】:2013-11-08 22:18:44
【问题描述】:

如何将警报主题设置为标准 Android 主题之一?我想使用 Holo Dark,因为弹出窗口默认为 Holo Light。 我的代码:

        AlertDialog.Builder confirm = new AlertDialog.Builder(this);
        confirm.setTitle("Confirm");
        confirm.setMessage("Confirm and set delay?");
        confirm.setCancelable(false);
        confirm.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    startDelay();
               }
           });
        confirm.setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
               }
           });
        confirm.show();

【问题讨论】:

    标签: android themes android-alertdialog


    【解决方案1】:

    带有 v7 库的主题 android.support.v7.app.AlertDialog

    android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(this,R.attr.alertDialogTheme);
    

    带有 android.app.AlertDialog

    构造器的主题
    android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this,AlertDialog.THEME_HOLO_LIGHT );
    

    但根据新文档
    此常量 (AlertDialog.THEME_HOLO_LIGHT) 在 API 级别 23 中已弃用。使用 Theme_Material_Light_Dialog_Alert 。

     android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this,android.R.style.Theme_Material_Light_Dialog_Alert );
    

    【讨论】:

      【解决方案2】:

      你可以在构造函数中传递一个主题。

      new AlertDialog.Builder (this, AlertDialog.THEME_HOLO_DARK)
      

      【讨论】:

        猜你喜欢
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多