飴屋

Androidアプリメモ/メモ2

確認ダイアログで確認したい

重要な処理は行う前に「本当にそんなことしていいの?」ってユーザに確認を取ってあげた方がいいことがしばしばあります。不意に変なところをタップしてしまい、泣くに泣けないような操作が走ってしまうことを未然に防げるからです。今回はデータベース内のデータを完全に削除するという処理の前に確認用のダイアログを表示してみようと思いました。

new AlertDialog.Builder(this)
.setMessage(R.string.msgConfirmClearAllData)
.setPositiveButton(R.string.ok,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// OK Click
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Cancel Click
}
})
.setCancelable(true)
.create()
.show();

確認用のダイアログはAlertDialogというクラスを使って表示します。AlertDialogの中身の設定はAlertDialog.Builderというオブジェクトを使うとよいらしいのでそれを使ってみることにします。AlertDialog.Builderは何か設定を追加すると設定が変更された自分を返却するので、メソッドチェーンのような記述が可能です。余談ですが、メソッドチェーンは書いていてとても直感的ですが、人にプログラムの挙動を説明するのには向いてない書式だなと今思いました。

AlertDialog.Builderの以下のメソッドを使ってAlertDialogの以下の項目を設定します。

setTitle
ダイアログの見出し。今回は省略しましたので見出しは表示されません。
setMessage
ダイアログの文章。「消しちゃうけどいいですか?」みたいな内容にしました。
setPositiveButton
肯定ボタンの見出しと押された時の挙動。「OK」にしました。
setNeutralButton
中立ボタンの見出しと押された時の挙動。今回は省略したのでボタンが表示されません。「どちらでもない」みたいなボタンに使うんでしょうね。
setNegativeButton
否定ボタンの見出しと押された時の挙動。「キャンセル」にしました。
setCancelable
キャンセル可能かどうか。trueにしたからといってキャンセルボタンが増えるわけではなさそうでしたので、否定ボタンも追加しておきました。

こんな設定を行ってcreateメソッドを叩くとAlertDialogができあがります。最後にshowメソッドで表示して、その後のことはOnClickListenerにやらせましょう。

JavaScriptのconfirmみたいな関数が欲しいな〜とかちょっと思いました。

メモ一覧