8

我想更改警报对话框的背景。我已经尝试过以下代码片段:

 <style name="Theme.AlertDialog" parent="@android:style/Theme.Holo.Light.Dialog">
        <item name="android:background">@android:color/transparent</item>
        <item name="android:textColor">#659F26</item>
        <item name="android:windowTitleStyle">@style/Theme.AlertDialog.Title</item>
    </style>

    <style name="Theme.AlertDialog.Title" parent="@android:style/TextAppearance.DialogWindowTitle">
        <item name="android:background">@drawable/cab_background_top_example</item>
    </style>

Java 代码:

ContextThemeWrapper ctw = new ContextThemeWrapper( this, R.style.Theme_AlertDialog);
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctw);

alertDialogBuilder.setTitle(getResources().getString(R.string.confirmation));   
alertDialogBuilder.setMessage(getResources().getString(R.string.msg));       
alertDialogBuilder.show();

我的应用程序显示如下对话框:

在此处输入图像描述

虽然我希望它看起来像:

在此处输入图像描述

请提出建议,我做错了什么。

4

2 回答 2

6

创建对话框时使用此代码:

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);   

创建您自己的布局尽可能多的自定义标题然后设置您的布局

  dialog.setContentView(R.layout.yourlayout);

注意:使用

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); before     
dialog.setContentView(R.layout.yourlayout);

否则会出错。

于 2013-07-23T07:48:06.143 回答
0
ContextThemeWrapper ctw = new ContextThemeWrapper( this, R.style.Theme_AlertDialog);

在这一行中使用而不是“ this”使用ActivityName.this

于 2015-01-23T09:56:27.440 回答