Android:为什么这个对话框弹出两次?

标签 android dialog android-alertdialog

我有一个对话框可以检查互联网是否打开。如果它没有打开,我会显示一个弹出窗口,让您可以选择打开数据或退出应用程序。如果您选择打开数据,它将带您进入设置页面以打开数据。这是问题所在:当您从设置页面按回时,对话框仍然存在,它不会被关闭。这是代码:

public void calldialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(
            "You need to enable an internet connection in order to use this Chirps:")
            .setCancelable(true)
            .setPositiveButton("Turn on Data",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {

                            Intent newintent = new Intent(
                                    android.provider.Settings.ACTION_WIRELESS_SETTINGS);
                            newintent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                            startActivity(newintent);
                            dialog.dismiss();
                        }
                    })
            .setNegativeButton("Exit",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            Main.this.finish();
                        }
                    });
    builder.show();

}

当我只有一个选项时,对话框运行正常。但是一旦我添加第二个选项,它就会导致按钮显示两次。在 oncreate 和 onresume 中都调用了包含 calldialog() 的互联网检查功能,这可能是问题的一部分。

最佳答案

在 dialog.dismiss() 之前调用 startActivity()。这将控制新 Activity 。

关于Android:为什么这个对话框弹出两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181373/

相关文章:

android - 我的应用程序在后台运行时被 android 系统杀死

android - ProGuard 无法删除 Log.i 函数调用

java - onProgressUpdate 不起作用

android - 从对话框更新 Activity 的 ListView

java - 有没有办法从警报对话框中按下 "get"并更改其他值?

java - 如何让 Facebook 登录带我去 Activity ?

Android:在软键盘前显示对话框

dialog - 如何在ATL/WTL中创建分离器?

java - 如何在 Activity 顶部显示 "window/subactivity/dialog"但将焦点保持在 Activity 中

android - AlertDialog 单元测试 - java.lang.VerifyError : Bad type on operand stack