如何使对话框看起来像ICS主题

时间:2014-08-19 04:03:20

标签: android android-4.0-ice-cream-sandwich android-dialog

来自服务我正在通过虚拟活动创建对话框。在这里我可以看到黑色背景,整体对话框的主题看起来像Android V 2.2。我的应用程序最低API级别是8,如果我使用holo主题它说我需要min api级别为14。

这是我用来创建对话框的代码。如何获得ICS主题对话框。

  public class PreviewDialog extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        // Show the popup dialog
        showDialog(0);


    }



@Override
protected Dialog onCreateDialog(int id)
{
    super.onCreateDialog(id);

    // Build the dialog
    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("ALARM REMINDER");
    alert.setMessage("Its time for the alarm ");
    alert.setCancelable(false);

    alert.setPositiveButton("Dismiss", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            GoogleTaskPreviewDialog.this.finish();
        }
    });

    // Create and return the dialog
    AlertDialog dlg = alert.create();

    return dlg;
}
}

我的清单文件条目

 <activity android:name="PreviewDialog" android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity> 

2 个答案:

答案 0 :(得分:1)

您无法真正使用HOLO中的主题,它仅适用于api >= 14/ice cream sandwich

<强>溶液

您可以设计自己的对话框布局,该布局看起来像是来自HOLO theme的对话框,或者检查当前设备的API是否大于或等于ice cream sandwich并设置{{ 1}}用于对话框,如果它只是使用2.2中的对话框主题。

<强>样品:

HOLO theme

另请注意, AlertDialog.Builder alert; // Build the dialog if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) alert = new AlertDialog.Builder(this,android.R.style.Theme_Holo_Dialog); else alert = new AlertDialog.Builder(this); 已被弃用,我建议仅使用onCreateDialog的实例对象来显示对话框,而不是在AlertDialog内创建对话框并通过调用显示它onCreateDialog

答案 1 :(得分:0)

您可以使用AlertDialogPro在所有Android版本中构建Holo主题对话框。

https://github.com/fengdai/AlertDialogPro