为什么我的安卓弹窗是黑色的?

9

你能帮我找出为什么我的警告对话框是黑色的吗?!

最近我改变了我的应用程序主题以支持材料设计,但我的警告对话框变成了黑色!

这是我创建对话框的代码:

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>

请看以下链接,也许您可以通过这种方法解决您的问题 > https://dev59.com/ZnA75IYBdhLWcg3wxcDV - Maniya Joe
2个回答

4

您没有为AlertDialog设置主题,如果要使用主题,请更改代码如下:

ContextThemeWrapper ctw = new ContextThemeWrapper(TestActivity.this, R.style.AppDialog);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctw);

2

你必须使用轻量级主题来构建AlertDialog,例如THEME_HOLO_LIGHT。

AlertDialog.Builder alertDialog = new AlertDialog.Builder(this,AlertDialog.THEME_HOLO_LIGHT);

谢谢您的评论,它是正确的。然而,我认为它很简单并且可以自我解释。 - Boody
1
但这已经被弃用了? - dsharew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接