Skip to content

Instantly share code, notes, and snippets.

@ch8n
Last active June 6, 2024 11:24
Show Gist options
  • Save ch8n/319a60251885ad538f149e9a1037f7b9 to your computer and use it in GitHub Desktop.
Save ch8n/319a60251885ad538f149e9a1037f7b9 to your computer and use it in GitHub Desktop.
Android alert dialog kotlin Extension
//Utils - Declaration
object PromptUtils {
fun alertDialog(context: Context, @StyleRes style: Int, dialogBuilder: AlertDialog.Builder.() -> Unit): Dialog {
val builder = AlertDialog.Builder(context, style).also {
it.setCancelable(false)
it.dialogBuilder()
}
return builder.create()
}
fun AlertDialog.Builder.negativeButton(text: String = "Dismiss", handleClick: (dialogInterface: DialogInterface) -> Unit = {}) {
this.setPositiveButton(text) { dialogInterface, which -> handleClick(dialogInterface) }
}
fun AlertDialog.Builder.positiveButton(text: String = "Continue", handleClick: (dialogInterface: DialogInterface) -> Unit = {}) {
this.setNegativeButton(text) { dialogInterface, which -> handleClick(dialogInterface) }
}
}
//Usage
PromptUtils.alertDialog(this, R.style.AlertDialog_AppCompat_Light) {
setTitle("Permission")
setMessage("Storeage read and write permission?")
positiveButton(){
//do positive actions
it.dismiss()
}
negativeButton(){
//do negative actions
it.dismiss()
}
}
@khushwaqt
Copy link

How can we get textview or spinner value in
// Usage
alert {
setTitle("Confirm")
setMessage("Are you sure you want to delete this item?")
positiveButton { textview or spinner value here }
negativeButton { //do something }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment