更改构建版本后 Android 自定义警报对话框显示错误

标签 android android-alertdialog android-build android-version

我正在开发一个简单的演示。在此演示中,我只是创建一个简单的自定义警报对话框。它工作正常。

当我在 1.6 中构建应用程序时,它向我显示了完美的结果,但是当我将 android 版本从 1.6 更改为 2.2 时,它显示了意想不到的结果。它不显示我显示自定义警报对话框的背景屏幕。

这是我的 xml 文件。 自定义对话框主题文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomDialogTheme" parent="@android:style/AlertDialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowAnimationStyle">@android:style/Theme.Dialog</item>
    </style>
</resources>

这是我的 CustomConfirmOkDialog 类

package com.utility.org;

import android.app.Activity;
import android.app.Dialog;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

    public class CustomConfirmOkDialog extends Dialog implements OnClickListener
    {
        private Button okButton = null;
        private TextView infoText=null,confirmBody=null;
        private int errorMessage=0;
        @SuppressWarnings("unused")
        private Activity activity;

        public CustomConfirmOkDialog(Activity context,int customdialogtheme,int errorMessage) 
        {
            super(context,customdialogtheme);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.confirm_ok);
            this.errorMessage = errorMessage;
            this.activity = context;
            initControls();
        }

        private void initControls()
        {
            okButton = (Button) findViewById(R.id.ok_button);
            okButton.setOnClickListener(this);

            infoText = (TextView)findViewById(R.id.infoText);
            confirmBody = (TextView)findViewById(R.id.confirmBody);

            switch (this.errorMessage) 
            {

                case Utility.INVALID_USERNAME_PASSWORD:
                    try
                    {
                        infoText.setText(R.string.signIn);
                        confirmBody.setText(R.string.invalidUsernameAndPassword);
                    }
                    catch (Exception e) 
                    {
                        e.printStackTrace();
                    }
                    break;


                default:
                    break;
            }
        }
        public void onClick(View v) 
        {
            dismiss();
        }
    }

使用以下代码从我的主要 Activity 中调用此类。

CustomConfirmOkDialog dialog = new CustomConfirmOkDialog(MainActivity.this, R.style.CustomDialogTheme, Utility.INVALID_USERNAME_PASSWORD);
dialog.show();

enter image description here enter image description here

在这里您可以清楚地注意到 1st image 显示了背景。它在 android 1.6 版本中构建,而 2nd image 不显示背景。它显示整个黑屏。它在 android 版本 2.2 中构建。如果有人能解决这个问题,我非常感谢。

谁能帮我解决这个简单而愚蠢的问题?

提前致谢。

最佳答案

它通过更改自定义对话框主题 xml 文件中的以下代码解决了我的问题。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomDialogTheme" parent="@android:style/Theme.Translucent.NoTitleBar">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
    </style>
</resources>

关于更改构建版本后 Android 自定义警报对话框显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608668/

相关文章:

android - isMinifyEnabled() 已弃用。有什么选择?

java - 用户在测验应用程序中获得 1 分后,分数不会增加。我该如何修复?

android - EditText 在键入时删除黑色下划线

android - Proguard:如何避免缩小(和混淆)整个包以避免删除(和混淆) "unused methods"?

java - ICS 的 Android PPTP VPN 客户端实现

android - 带有长文本的对话框按钮不换行/挤压 - android 5.0 lollipop 上的 Material 主题

android - 尝试从静态 AsyncTask 方法显示 ProgressDialog 时出现 NullPointerException

android - 自定义 ListView 适配器中的 AlertDialog.Builder 未显示

android - 从构建中删除 AOSP 应用程序

android - Android-构建失败,出现异常