AlertDialog
AlertDialogの基本形と表示例
タイトル + メッセージ + OKボタン
AlertDialog.Builder(context) .setTitle("Title") .setMessage("Message") .setPositiveButton("OK", null) .show()
- タイトル、メッセージ、ボタンの文言をセットし、ダイアログを表示
- ボタンタップ時のコールバックアクションは無し(null)
タイトル + メッセージ + OKボタン + Cancelボタン
AlertDialog.Builder(context) .setTitle("Title") .setMessage("Message") .setPositiveButton("OK", null) .setNegativeButton("Cancel", null) .show()
- タイトル、メッセージ、ボタンの文言(OK / Cancel)をセットし、ダイアログを表示
- ボタンタップ時のコールバックアクションは無し(null)
タイトル + メッセージ + ボタン3つ
AlertDialog.Builder(context) .setTitle("Title") .setMessage("Message") .setPositiveButton("Good", null) .setNegativeButton("Bad", null) .setNeutralButton("Either", null) .show()
- NeutralButtonは、「どちらでもない」「その他」などの選択肢が必要な場合に追加すると良いでしょう
メッセージのみ
AlertDialog.Builder(context).setMessage("Message").show()
実装のポイント
strings.xmlを参照する
AlertDialog.Builder(context) .setTitle(R.string.dialog_title) .setMessage(R.string.dialog_message) .show()
- タイトル、メッセージ、ボタンの文言をR.stringで指定できます。
ボタンタップ時のコールバック処理を実装
AlertDialog.Builder(context) .setTitle(R.string.dialog_title) .setMessage(R.string.dialog_message) .setPositiveButton(R.string.dialog_ok) { dialog, which -> Toast.makeText(context, "OK", Toast.LENGTH_SHORT).show() } .show()
- setPositiveButtonの第二引数はDialogInterface.OnClickListener型となっている為、ラムダ式で記述可能。
キャンセル不可
AlertDialog.Builder(context)
.setMessage(R.string.dialog_message)
.setCancelable(false)
.show()
- 背景領域をタップしても、◁(バックキー)を押してもキャンセルできなくなります。
キャンセル時のコールバック処理
AlertDialog.Builder(context) .setMessage(R.string.dialog_message) .setCancelable(true) .setOnCancelListener { Toast.makeText(context, "Cancel", Toast.LENGTH_SHORT).show() } .show()
アイコン追加
AlertDialog.Builder(context)
.setIcon(R.drawable.ic_launcher)
.setTitle(R.string.dialog_title)
.setMessage(R.string.dialog_message)
.setPositiveButton(R.string.dialog_ok, null)
.show()
MacAddressを調べる方法
terminalから調べる方法