【问题标题】:On clicking quit button on alert dialog shows MainActivity单击警报对话框上的退出按钮会显示 MainActivity
【发布时间】:2018-11-06 11:19:54
【问题描述】:

onBackPressed 显示警报对话框。单击退出按钮时,它会显示主要活动。再次按下返回键时会显示 alertDialog 但这次单击退出按钮会关闭应用程序。我错过了什么?

这是 OpenExitDialog() 代码。

public void OpenExitDialog()    {

    try {
        com.heyzap.sdk.ads.InterstitialAd.fetch();
        if (com.heyzap.sdk.ads.InterstitialAd.isAvailable()) {
            com.heyzap.sdk.ads.InterstitialAd.display(MainActivity.this);
        } else {
            start_AppAd.loadAd(new AdEventListener() {
                @Override
                public void onReceiveAd(Ad ad) {
                    start_AppAd.showAd(new AdDisplayListener() {
                        @Override
                        public void adHidden(Ad ad) { }
                        @Override
                        public void adDisplayed(Ad ad) { }

                        @Override
                        public void adClicked(Ad arg0) { }
                        @Override
                        public void adNotDisplayed(Ad arg0) { }
                    });
                }
                @Override
                public void onFailedToReceiveAd(Ad ad) {

                }
            });
        }
        try {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Exit");
            builder.setIcon(R.mipmap.ic_launcher);
            builder.setMessage("Thankyou!")
                    .setCancelable(false)
  }
                    })

                    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            dialogInterface.cancel();
                        }
                    })
                    .setPositiveButton("Quit", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            finish();
                        }
                    });
            AlertDialog alert = builder.create();
            alert.show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

【问题讨论】:

    标签: android android-alertdialog


    【解决方案1】:

    试试这个,

        @Override
        public void onBackPressed() {
    
                   AlertDialog alertbox = new AlertDialog.Builder(this)
        .setMessage("Do you want to exit application?")
        .setPositiveButton("Quit", new DialogInterface.OnClickListener() {
    
            // do something when the button is clicked
            public void onClick(DialogInterface arg0, int arg1) {
    
                finish();
                //close();
    
    
            }
        })
        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    
            // do something when the button is clicked
            public void onClick(DialogInterface arg0, int arg1) {
                           }
        })
          .show();
    
     }
    

    希望有用。

    【讨论】:

    • 我想在按下后退按钮时添加 heyzapp 广告。当我不使用 heyzapp 广告时,它可以正常工作。
    • 当您点击返回按钮然后显示 heyzapp 广告。对吗?
    • 是的,它显示了 heyzapp。当 heyzapp 广告关闭时,显示对话框。当我单击 dialogAlert 上的退出按钮时,它再次显示主要活动
    • 好的,你可以在onBackPressed()方法中添加MainActivity Intent和heyzapp广告。
    • 我正在添加,但单击退出按钮不会结束活动
    【解决方案2】:
    .setPositiveButton("Quit", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                finish();
                                System.exit(0);  //add this line
    
                            }
                        });
    

    【讨论】:

    • 问题存在。现在它显示一个空白屏幕,并在 2 秒后显示 MainActivity
    • System.exit 在 android 上不能这样工作。见stackoverflow.com/questions/18292016/…
    • 但是完成();没有关闭活动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多