ダイアログの画面外をタッチすると閉じる

以下の用なDialogクラス(extends Dialog)なら、14~25行目をコピペでそのまま使えるはず。

[java title=”daialog.java” highlight=”14-20,21-25″]
public class PopupDialog extends Dialog{

public PopupDialog(Context context) {
super(context);
}

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//ダイアログの画面レイアウトをセット
setContentView(R.layout.popupDialog);
}

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
Rect rect = new Rect();
getWindow().getDecorView().getHitRect(rect);
if (!rect.contains((int) event.getX(), (int) event.getY())) {
//ダイアログを閉じる
this.dismiss();
}
}
return super.dispatchTouchEvent(event);
}
}
[/java]

Comments are closed.