ダイアログ外でクリックが発生したときにイベントを発生させるにはどうすればいいですか?質問する

ダイアログ外でクリックが発生したときにイベントを発生させるにはどうすればいいですか?質問する

抱えている問題を解決する方法を知りたいです。

アクティビティでポップアップするダイアログがあります。ダイアログは画面全体をカバーしないので、アクティビティのボタンは表示されます。ダイアログの境界外にタッチすると、ダイアログを簡単に閉じることができます。dialog.setCanceledOnTouchOutside(true);

ただし、私がやりたいのは、クリックがダイアログの境界外にある場合にイベントを発生させることです (たとえば、誰かがメイン アクティビティのボタンをタッチすると、ダイアログが閉じられ、同時にそのイベントが発生する必要があります)。

ベストアンサー1

その場合は、次のようにdialog.setCanceledOnTouchOutside(true);上書きしますonCancel()

dialog.setOnCancelListener(
        new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                //When you touch outside of dialog bounds, 
                //the dialog gets canceled and this method executes.
            }
        }
);

onCancel()ダイアログがキャンセルされたときに実行されるように、メソッド内にコードを入力します。

おすすめ記事