繁体   English   中英

单击“是”按钮时如何关闭alertdialog,而不在backBackeded上再次显示它?

[英]how to dismiss alertdialog when it's Yes button is Clicked and not show it again onBackPressed?

我的应用程序中有两个警报对话框。

1用于退出应用程序,另一个用于重定向到url。

我已经在对话框中显示了对话框。

现在将弹出第一个对话框,即立即重定向url,因为当用户按下该对话框时,它将重定向到url。

但是当用户按下后退按钮时,我必须将其关闭,并且只想在后退按钮单击时显示退出对话框。

这是我的代码。

boolean flag = false;

@Override
public void onBackPressed() {
    if (flag) {
        super.onBackPressed();

    } else {
        final AlertDialog.Builder alert = new AlertDialog.Builder(
                MainActivity.this);
        alert.setMessage("EXIT"); // Message
                                                                                // here

        alert.setPositiveButton("NO",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int whichButton) {
                        AlertDialog.Builder exitdialog = new AlertDialog.Builder(
                                MainActivity.this);
                        exitdialog
                                .setMessage("EXIT");
                        exitdialog.setTitle(R.string.app_name);
                        exitdialog.setIcon(R.drawable.logo);
                        exitdialog.setPositiveButton("NO",
                                new OnClickListener() {

                                    @Override
                                    public void onClick(
                                            DialogInterface dialog,
                                            int which) {

                                    }
                                });
                        exitdialog.setNegativeButton("Yes",
                                new OnClickListener() {

                                    @Override
                                    public void onClick(
                                            DialogInterface dialog,
                                            int which) {
                                        /*
                                         * Intent i=new
                                         * Intent(getApplicationContext
                                         * (),MainActivity.class);
                                         * startActivity(i);
                                         */

                                        finishFromChild(getParent());
                                        getIntent()
                                                .setFlags(
                                                        Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                        finish();
                                    }
                                });
                        AlertDialog alertDialog = exitdialog.create();
                        alertDialog.show();

                    }
                });

        alert.setNegativeButton("YES",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int whichButton) {

                        Intent viewTwitter = new Intent(
                                "android.intent.action.VIEW",
                                Uri.parse("URL"));
                        startActivity(viewTwitter);
                        overridePendingTransition(R.anim.fadein,
                                R.anim.fadeout);

                    }

                });
        final AlertDialog alertDialog = alert.create();
        alertDialog.show();

    }

删除finish(); 默认操作是dismiss dialog.dismiss(); 在侧面的onClick方法中

编辑设置flag = true;

boolean flag = false;

@Override
public void onBackPressed() {
if (flag) {
    super.onBackPressed();

} else {
    final AlertDialog.Builder alert = new AlertDialog.Builder(
            MainActivity.this);
    alert.setMessage("EXIT"); // Message
                                                                            // here

    alert.setPositiveButton("NO",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int whichButton) {
                    AlertDialog.Builder exitdialog = new AlertDialog.Builder(
                            MainActivity.this);
                    exitdialog
                            .setMessage("EXIT");
                    exitdialog.setTitle(R.string.app_name);
                    exitdialog.setIcon(R.drawable.logo);
                    exitdialog.setPositiveButton("NO",
                            new OnClickListener() {

                                @Override
                                public void onClick(
                                        DialogInterface dialog,
                                        int which) {

                                }
                            });
                    exitdialog.setNegativeButton("Yes",
                            new OnClickListener() {

                                @Override
                                public void onClick(
                                        DialogInterface dialog,
                                        int which) {
                                    /*
                                     * Intent i=new
                                     * Intent(getApplicationContext
                                     * (),MainActivity.class);
                                     * startActivity(i);
                                     */

                                    finishFromChild(getParent());
                                    getIntent()
                                            .setFlags(
                                                    Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                    finish();
                                }
                            });
                    AlertDialog alertDialog = exitdialog.create();
                    alertDialog.show();

                }
            });

    alert.setNegativeButton("YES",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int whichButton) {
             flag= true;

                    Intent viewTwitter = new Intent(
                            "android.intent.action.VIEW",
                            Uri.parse("URL"));
                    startActivity(viewTwitter);
                    overridePendingTransition(R.anim.fadein,
                            R.anim.fadeout);

                }

            });
    final AlertDialog alertDialog = alert.create();
    alertDialog.show();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM