AlertDialogのボタンを押したときに、閉じる、閉じないをコントロールするには
解説
AlertDialog.Builderクラスを使用すると、簡単にダイアログを作成することができます。
AlertDialog.Builderクラスには、setPositiveButton、setNegativeButtonというボタンを設置することができる関数が用意されています。
setPositiveButton、setNegativeButtonでは、ボタンに表示するテキストと、ボタンを押したときに通知するリスナーを引数で指定します。
setPositiveButton、setNegativeButtonで指定したリスナーでは、ボタンを押したときに、ダイアログを閉じる、ダイアログを閉じない、をコントロールすることはできません。必ず、閉じてしまいます。
ボタンを押したときに、ダイアログを閉じる、ダイアログを閉じない、をコントロールするには、ボタンオブジェクトを取得し、ボタンオブジェクトに直接リスナーを登録します。
サンプルコード
実行
Android Virtual Device にて、動作確認。
起動直後
「ダイアログ表示」ボタンを押すと、「Dialog Close Control」ダイアログが表示される。
エディットボックスに何も入力しないで、「OK」ボタンを押すと、「Please enter some text.」というトーストが表示され、ダイアログは、閉じずに、表示されたまま。
エディットボックスにテキストを入力し、「OK」ボタンを押すと、ダイアログは閉じられ、入力したテキストがトースト表示される。