AlertDialog主题问题

时间:2012-10-14 20:50:04

标签: android

我正在创建一个AlertDialog。如果像这样创建:

AlertDialog.Builder builder = AlertDialog.Builder((RelationActivity)getContext());
builder.setMessage("No relations found.");
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {       
    public void onClick(DialogInterface dialog, int id) {
        ((RelationActivity)getContext()).finish();
    }
});
builder.create();
builder.show();

结果如下:http://www.ozze.com.br/1.png

但是,如果我尝试设置主题,就像这样:

AlertDialog.Builder builder = new AlertDialog.Builder(((RelationActivity)getContext()), android.R.style.Theme_Holo_Light_Dialog);

结果如下:http://www.ozze.com.br/2.png

拜托,有谁可以帮我解决这个问题?看起来在使用主题时,主题“围绕”警报对话框。

2 个答案:

答案 0 :(得分:10)

为Theme.Holo.Light等警报对话框设置不同的主题,尝试使用android源代码中的Dialog.java中使用的ContextThemeWrapper:

builder = new AlertDialog.Builder(new ContextThemeWrapper(this, android.R.style.Theme_Holo_Light_Dialog))

答案 1 :(得分:7)

以下是原始回答here

的链接

为了快速参考,我在这里发帖
主题与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 );