如何防止弹出窗口在窗口外关闭android?

时间:2015-12-14 10:49:26

标签: android android-fragments android-intent android-activity popup

在我的活动中,我打开一个弹出窗口(警告对话框),是的,没有选项。但是当我在窗口外面或屏幕上的任何地方点击时,弹出窗口将被取消。如何通过单击任意位置来阻止弹出窗口关闭。我希望它只在我输入No按钮时关闭。请帮忙!!!

以下是MainActivity.java中的弹出代码

Handler handler = new Handler();

handler.postDelayed(new Runnable() {

    @Override

    public void run() {


   if (context != null) {

            AlertDialog.Builder alert = new AlertDialog.Builder(context, R.style.MyAlertDialogStyle)
                    .setTitle("Title")
                    .setMessage("Message")
                    .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // continue with delete
                            Intent intent = new Intent(MainActivity.this, WebActivity.class);
                            startActivity(intent);
                        }
                    })
                    .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialogInterface, int which) {
                            dialogInterface.dismiss();
                            // do nothing
                        }
                    });

            mDialog = alert.create();
            mDialog.getWindow().getAttributes().windowAnimations = R.style.MyAlertDialogStyle;
            if (!((Activity) context).isFinishing())
            mDialog.show();
            // .setIcon(R.drawable.inr1)
            // .show();

        }
    }
}, 15000);

4 个答案:

答案 0 :(得分:0)

添加

mDialog.setCancelable(false);

答案 1 :(得分:0)

mDialog.show();

之前添加此行
mDialog .setCanceledOnTouchOutside(false);

答案 2 :(得分:0)

尝试mDialog.setCancelable(true);

答案 3 :(得分:0)

只需添加以下行即可解决您的问题

mDialog .setCanceledOnTouchOutside(false);