Dialogのイベントを取得する
たとえばダイアログでキャンセルされたときや、ダイアログが閉じた時など
イベントを取得したいときはこんな風に書きます。
progress = new ProgressDialog(this); progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); progress.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { // ハードキーが押されたとき呼ばれる return false; } }); progress.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { // Resultがキャンセルのとき呼ばれる } }); progress.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { // Resultがなんであれ、ダイアログが消された時呼ばれる //onCancelが呼ばれた後にも呼ばれるので、二重に処理しないように注意 } }); progress.show();
コードではProgressDialog使ってるけど、もちろんDialogクラスでもいけます。
もっとイベントを取りたいときは(トラックボール使った時とか、メニューボタンが押されたときとか)
継承してOverrideすればいいんじゃないかな。