在android中退出时出现对话框问题

在android中退出时出现对话框问题,android,android-alertdialog,android-dialog,Android,Android Alertdialog,Android Dialog,我开发了一个有一个活动的应用程序,我将在按下退出按钮时编码, 我想用三个按钮显示对话框,当用户按下后退按钮时,第一个按钮表示“是”,第二个按钮表示“主页”,第三个按钮表示“退出”,我使用后退按钮的方法进行了显示,但我遇到了一些问题,如果显示对话框,则它不显示对话框,只是对话框闪烁,那么它背后的原因是什么 我的代码是 public class MainActivity extends Activity { private AlertDialog alertDialog; @Override p

我开发了一个有一个活动的应用程序,我将在按下退出按钮时编码, 我想用三个按钮显示对话框,当用户按下后退按钮时,第一个按钮表示“是”,第二个按钮表示“主页”,第三个按钮表示“退出”,我使用后退按钮的方法进行了显示,但我遇到了一些问题,如果显示对话框,则它不显示对话框,只是对话框闪烁,那么它背后的原因是什么

我的代码是

public class MainActivity extends Activity {

private AlertDialog alertDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

}

@Override
public void onBackPressed() {
    super.onBackPressed();
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            MainActivity.this);

    alertDialogBuilder.setTitle("Alert Dialogue Box");

    alertDialogBuilder.setMessage("Are you sure?");

    alertDialogBuilder.setPositiveButton("Yes",
            new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int id) {

                    Toast.makeText(getApplicationContext(),
                            "Positive", 1000).show();

                }

            });

    alertDialogBuilder.setNegativeButton("No",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                    dialog.cancel();

                    Toast.makeText(getApplicationContext(),
                            "You chose a negative answer",

                            Toast.LENGTH_LONG).show();

                }

            });

    alertDialogBuilder.setNeutralButton("Exit the app",
            new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int id) {

                    Toast.makeText(getApplicationContext(), "exit",
                            1000).show();
                    MainActivity.this.finish();

                }

            });

    AlertDialog alertDialog = alertDialogBuilder.create();

    alertDialog.show();

}

你写的代码很好。但是这行代码导致了异常

 super.onBackPressed();
这是完成您的
活动
,因此您的
对话框
将因窗口泄漏异常而关闭。 因此,请从代码中删除该行

添加此行以取消外部触摸

alertDialog.setCanceledOnTouchOutside(false);

您可以在对话框引用中设置AlertDialog.Builder,如下所示:

Dialog dia = new AlertDialog.Builder(this)

并使用
dia
使用
setcanceledontouchout
方法

comment super.onBackPressed();我还有一个问题,当我在对话框外点击时,对话框会关闭。。。