点击外部关闭对话框

3

我已经尝试并在谷歌上搜索了相关内容,但是没有得到答案。

我正在点击时展开一个视图,现在我想关闭展开的视图,但是没有成功。以下是我的源代码...

icon1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
             LayoutInflater inflater = (LayoutInflater)screen.getSystemService(screen.LAYOUT_INFLATER_SERVICE);
               layout =  inflater.inflate(R.layout.image_popup,null);

               AlertDialog.Builder builder = new AlertDialog.Builder(Actvity.this);
               builder.setCancelable(true);
               builder.setView(layout);

我不想添加正面或负面按钮

 builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                     dialog.dismiss();
                }
            });

               final AlertDialog alertDialog = builder.create(); 

               alertDialog.setIcon(R.drawable.icon1);
               alertDialog.show();
        }
    });

1
尝试使用“自定义对话框”而不是“警告对话框”。 - M D
1
builder.setCanceledOnTouchOutside(true); - Sainath Patwary karnate
我尝试了这个方法,但是没有起作用。@SainathPatwarykarnate - dev_android
1
builder.setCancelable(true); 被调用了两次。 - Sainath Patwary karnate
1
@user3467110,按照_Biraj_的答案尝试一下,有什么问题吗?或者使用PopWindow是最好的方法。 - M D
显示剩余3条评论
1个回答

8

使用自定义对话框并使用此方法以满足您的需求 dialog.setCanceledOnTouchOutside(true);

示例

public void getCustomOkDialog(Context mContext) {

    final Dialog dialog = new Dialog(mContext);
    dialog.setContentView(R.layout.ok_dialog);

    dialog.setCanceledOnTouchOutside(true);
    TextView txtMessage = (TextView) dialog.findViewById(R.id.txtMessage);
    txtMessage.setText("Your Message");
    dialog.show();

}

1
是的,使用给定的方法,只需将 R.layout.ok_dialg 替换为您的布局文件。 - Biraj Zalavadia
我试过了,但是点击外面没有反应... @Biraj Zalavadia - dev_android
嗨,我更新了答案,只需从构造函数中删除主题并尝试。 - Biraj Zalavadia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接