如何在AlertDialog中设置AlertDialog.finish()?

For*_*ors 2 java android android-alertdialog

我目前正在使用需要使用大量AlertDialogs的应用程序.我目前在这里编写了一个基本编码:

protected void StopButton () {
    AlertDialog.Builder StopDialog = new AlertDialog.Builder(MainActivity.this);
    StopDialog.setTitle(R.string.Stop_Title);
    StopDialog.setMessage(R.string.Stop_Message);
    StopDialog.setPositiveButton(R.string.Yes_Button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
            ((Protoype2) getApplication()).setRequestingLocationUpdates(false);
            finish();
        }
    });
    StopDialog.setNegativeButton(R.string.No_Button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            ((Protoype2) getApplication()).setRequestingLocationUpdates(true);
        }
    });
    StopDialog.setNeutralButton(R.string.Negative_Button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //Closes box
            finish();
        }
    });
    AlertDialog alert = StopDialog.create();
    alert.show();
}
Run Code Online (Sandbox Code Playgroud)

StopButton工作,当我打电话时,Dialog会出现.但是,完成(); 功能不起作用.

经过审核,我发现finish(); 没有完成对话,而是完整的应用程序.我知道我需要在那里获得AlertDialog.cancel.

问题是:正如您所看到的,AlertDialog仅在StopDialog完成后创建.

如何在StopDialog完成之前设置AlertDialog.finish()?

Non*_*hoi 5

替换finish()dialog.dismiss()这样:

AlertDialog.Builder StopDialog = new AlertDialog.Builder(TestActivity.this);
        StopDialog.setTitle("Title");
        StopDialog.setMessage("Stop");
        StopDialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int id) {
                ((Protoype2) getApplication()).setRequestingLocationUpdates(false);
                dialog.dismiss();
            }
        });
        StopDialog.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                ((Protoype2) getApplication()).setRequestingLocationUpdates(true);
            }
        });
        StopDialog.setNeutralButton("Neutral", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //Closes box
                dialog.dismiss();
            }
        });
        AlertDialog alert = StopDialog.create();
        alert.show();
Run Code Online (Sandbox Code Playgroud)