Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中单击对话框中的任意位置时如何关闭对话框_Java_Android - Fatal编程技术网

Java 在android中单击对话框中的任意位置时如何关闭对话框

Java 在android中单击对话框中的任意位置时如何关闭对话框,java,android,Java,Android,当我点击对话框上的任意位置时,它应该会关闭。全屏显示它的imageview对话框。设置取消到外部 在API级别1中添加 void setCanceledOnTouchOutside布尔值取消 设置在窗口边界外触摸时是否取消此对话框。如果设置为true,则对话框将设置为可取消(如果尚未设置) Parameterscancelboolean:在窗口外触摸时是否应取消对话框。您可以创建自己的触摸监听器,并在UP事件中关闭对话框 final Dialog dialog = new Dialog(con

当我点击对话框上的任意位置时,它应该会关闭。全屏显示它的imageview对话框。

设置取消到外部

在API级别1中添加

void setCanceledOnTouchOutside布尔值取消

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


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

您可以创建自己的触摸监听器,并在UP事件中关闭对话框

 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();
然后将此侦听器设置为您的对话框

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

您可以做的一件事就是在Imageview上设置clicklistner

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