簡體   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