多少フライングしても問題ないか
サンプルコード
ConfirmDialog.kt
import android.app.AlertDialog
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.support.v4.app.DialogFragment
/**
* Created by ninomae makoto.
* @sample
* var dialog = ConfirmDialog()
* dialog.title = "タイトル"
* dialog.msg = "メッセージ"
* dialog.onOkClickListener = DialogInterface.OnClickListener { dialog, id ->
* Log.d( "tag", "ok clicked")
* }
* dialog.show( supportFragmentManager, "tag" )
*/
class ConfirmDialog : DialogFragment() {
var title = "title"
var msg = "msg"
var okText = "OK"
var cancelText = "cancel"
/** ok押下時の挙動 */
var onOkClickListener : DialogInterface.OnClickListener? = null
/** cancel押下時の挙動 デフォルトでは何もしない */
var onCancelClickListener : DialogInterface.OnClickListener? = DialogInterface.OnClickListener { _, _ -> }
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
// Use the Builder class for convenient dialog construction
val builder = AlertDialog.Builder(activity)
builder.setTitle(title)
.setMessage(msg)
.setPositiveButton(okText, onOkClickListener)
.setNegativeButton(cancelText, onCancelClickListener)
// Create the AlertDialog object and return it
return builder.create()
}
override fun onPause() {
super.onPause()
// onPause でダイアログを閉じる場合
dismiss()
}
}
使用方法
コメントに書いてあるコードに従ってダイアログを出したい箇所に記述
一応文言やボタン押下時の挙動などは全て変更可能
var dialog = ConfirmDialog()
dialog.title = "タイトル"
dialog.msg = "メッセージ"
dialog.okText = "はい"
dialog.cancelText = "いいえ"
dialog.onOkClickListener = DialogInterface.OnClickListener { dialog, id ->
Log.d(TAG, "ok clicked")
}
dialog.onCancelClickListener = DialogInterface.OnClickListener { dialog, id ->
Log.d(TAG, "cancel clicked")
}
// supportFragmentManagerはAppCompatActivity(正確にはFragmentActivity)を継承したアクティビティで使用可
dialog.show(supportFragmentManager, "tag")
以下のように表示される(後ろのwebviewは気にしないこと)

これだけの情報があれば後はどうにでもなるのではないかと
表示部分のカスタマイズについてはそのうち書くかも