你能帮我搞清楚为什么我的警报对话框是黑色的?!
最近我更改了我的应用主题以支持素材设计,但我的提醒对话框变黑了!
这是我的创建对话框代码:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(TestActivity.this);
alertDialog.setCancelable(true);
alertDialog.setTitle("sample");
alertDialog.setItems(new String[] { "a", "b" }, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alertDialog.show();
及其主要风格和对话风格
<style name="MaterialTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:alertDialogStyle">@style/AppDialog</item>
<item name="android:alertDialogTheme">@style/AppDialog</item>
<item name="android:textColor">@color/black</item>
<item name="android:textColorPrimary">@color/black</item>
<item name="android:dialogTheme">@style/AppDialog</item>
<item name="colorPrimaryDark">@color/myPrimaryDarkColor</item>
<item name="android:textColorHint">@color/gray_1</item>
<item name="colorAccent">@color/myAccentColor</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="android:windowBackground">@color/black</item>
</style>
<style name="AppDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">#FFC107</item>
<item name="android:textColorPrimary">#FFFFFF</item>
<item name="android:background">#4CAF50</item>
</style>
答案 0 :(得分:4)
您没有为AlertDialog设置主题,因为使用主题,将代码更改为:
ContextThemeWrapper ctw = new ContextThemeWrapper(TestActivity.this, R.style.AppDialog);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctw);
答案 1 :(得分:3)
您必须在alertdialog构建器中使用灯光主题,例如THEME_HOLO_LIGHT。
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this,AlertDialog.THEME_HOLO_LIGHT);