我正在创建一个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
拜托,有谁可以帮我解决这个问题?看起来在使用主题时,主题“围绕”警报对话框。
答案 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 );