AlertDialogのボタンを押したときに、閉じる、閉じないをコントロールするには

解説

AlertDialog.Builderクラスを使用すると、簡単にダイアログを作成することができます。

AlertDialog.Builderクラスには、setPositiveButton、setNegativeButtonというボタンを設置することができる関数が用意されています。

setPositiveButton、setNegativeButtonでは、ボタンに表示するテキストと、ボタンを押したときに通知するリスナーを引数で指定します。

setPositiveButton、setNegativeButtonで指定したリスナーでは、ボタンを押したときに、ダイアログを閉じる、ダイアログを閉じない、をコントロールすることはできません。必ず、閉じてしまいます。

ボタンを押したときに、ダイアログを閉じる、ダイアログを閉じない、をコントロールするには、ボタンオブジェクトを取得し、ボタンオブジェクトに直接リスナーを登録します。

サンプルコード

実行

Android Virtual Device にて、動作確認。

起動直後


「ダイアログ表示」ボタンを押すと、「Dialog Close Control」ダイアログが表示される。


エディットボックスに何も入力しないで、「OK」ボタンを押すと、「Please enter some text.」というトーストが表示され、ダイアログは、閉じずに、表示されたまま。


エディットボックスにテキストを入力し、「OK」ボタンを押すと、ダイアログは閉じられ、入力したテキストがトースト表示される。

ダウンロード

サンプルプロジェクト