web-dev-qa-db-ja.com

Androidでプログラムでダイアログを閉じる方法は?

Androidでボタンを使用してプログラムでダイアログを閉じるにはどうすればよいですか?

[OK]ボタンのあるダイアログがあり、[OK]ボタンで閉じることを想像してみてください。しかし、それはできません。

私はグーグルで検索して、何も役に立たなかったので、ほとんどすべてがダイアログではなくAlertDialogを閉じました。

31

ダイアログで dismiss を呼び出すことができます。

54
iagreen

これは、2つのボタン([OK]と[キャンセル])でAlertDialogを作成する方法の例です。キャンセルボタンをクリックすると、

dialog.dismiss()

ダイアログを閉じるために呼び出されます。

外のどこからでも電話できます

builder.dismiss();

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setMessage("Some message.")
                   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           // do something
                       }
                   })
                   .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           dialog.dismiss();
                       }
                   });

            builder.show();
9
Philipp Jahoda
dialog.dismiss();

この行のみが閉じます。 :-)

OnClickListenerに実装します。

9
Helmisek

メソッド cancel() または dismiss() を使用できます。メソッドcancel()は、本質的にdismiss()の呼び出しと同じですが、 DialogInterface.OnCancelListener (登録されている場合)。

5
amatellanes

dismiss();オプションの代わりに、ダイアログを別のActivity(s.a. DialogActivity)として持っている場合、それを閉じる別の方法は以下を呼び出すことです:

_   finish();
_

OnClickListenerクラスのonClick()メソッド内でこのメソッドを呼び出します。

これはonPause()onStop()、およびonDestroy()メソッドを結果的に呼び出し、現在のアクティビティを強制終了します-Backボタンと同じです。

0
Serj Ardovic