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みたいな関数が欲しいな〜とかちょっと思いました。