当我点击android中对话框中的任何位置时,如何关闭对话框

时间:2017-03-17 08:39:46

标签: java android

 final Dialog dialog = new Dialog(context);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setCancelable(true);
            dialog.setContentView(R.layout.dialog_image);
            ImageView dialogIv = (ImageView)dialog.findViewById(R.id.dialog_iv);
            TextView dialogTV = (TextView)dialog.findViewById(R.id.dialog_med_name);
            dialog.show();

当我点击对话框上的任何地方时,它应该被忽略。全屏幕它的图像视图对话框。

3 个答案:

答案 0 :(得分:1)

您可以做的一件事,只需在Imageview上设置clicklistner。

 dialogIv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dialog.dismiss();
                }
            });

答案 1 :(得分:0)

setCanceledOnTouchOutside

在API级别1中添加

void setCanceledOnTouchOutside(boolean cancel)

设置在窗口边界外触摸时是否取消此对话框。如果设置为true,则对话框设置为可取消(如果尚未设置)。

Parameterscancelboolean:在窗口外触摸时是否应该取消对话框。

答案 2 :(得分:0)

您可以创建自己的Touch Listener,并关闭UP事件的对话框。

class MyTouchListener implement OnTouchListener{
public boolean onTouch(View v, MotionEvent event)
{
    if(event.getAction() == MotionEvent.ACTION_UP){
        // DISMISS DIALOG      
    }
    return true;
}

然后将此侦听器设置为对话框

MyTouchListener l = new MyTouchListener();
dialog.setOnTouchListener(l);