Create AlertDialog With Custom Layout Programmatically (Kotlin)

How to create Create AlertDialog With Custom Layout Programmatically (Kotlin)?

     DESCRIPTION     

In this tutorial we will create AlertDialog with custom layout programmatically in Java using Android Studio IDE. We will create a button to show that AlertDialog and show output in a TextView. You can also display this information anywhere or save at some place like shared preferences, files, sqlite etc.
I've added two TextViews and Two EditTexts with LinearLayout.
Create AlertDialog With Custom Layout Programmatically (Kotlin)


     VIDEO     


     SOURCE CODE     

Step 1: Create a new Project or open new project

Step 2: Code

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <!--button to show alert dialog-->
    <Button
        android:id="@+id/showAlertDialogBtn"
        android:text="Show Alert Dialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <!--textview to show input values-->
    <TextView
        android:id="@+id/txtView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="30sp"/>

</LinearLayout>

MainActivity.kt
package com.blogspot.atifsoftwares.alertdialogcustomlayoutprogramatically

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.app.AlertDialog
import android.util.TypedValue
import android.widget.Button
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //button
        val mShowBtn = findViewById<Button>(R.id.showAlertDialogBtn)
        //textview
        val mTextView = findViewById<TextView>(R.id.txtView)

        //button click to show alert dialog
        mShowBtn.setOnClickListener {
            val mBuilder = AlertDialog.Builder(this)
            val mLayout  = LinearLayout(this)
            val mTvName  = TextView(this)
            val mTvEmail = TextView(this)
            val mEtName  = EditText(this)
            val mEtEmail = EditText(this)

            mTvName.text  = " Enter Name:"
            mTvEmail.text = " Enter Email:"
            mTvName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f)
            mTvEmail.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f)
            mEtName.setSingleLine()
            mEtEmail.setSingleLine()
            mEtName.hint  = "Name"
            mEtEmail.hint = "Email"
            mLayout.orientation = LinearLayout.VERTICAL
            mLayout.addView(mTvName)
            mLayout.addView(mEtName)
            mLayout.addView(mTvEmail)
            mLayout.addView(mEtEmail)
            mLayout.setPadding(50, 40, 50, 10)

            mBuilder.setView(mLayout)

            //set positive button to alert dialog
            mBuilder.setPositiveButton("Done"){dialogInterface, i ->
                //get text from edit texts
                val name = mEtName.text.toString()
                val email = mEtEmail.text.toString()
                //set text to textView
                mTextView.text = "Name: "+ name + "\nEmail: " + email
            }
            //set neutral/cancel button
            mBuilder.setNeutralButton("Cancel"){dialogInterface, i ->
                dialogInterface.dismiss()
            }
            //show dialog
            mBuilder.create().show()

        }
    }
}

Step 3: Run Project
Output

Comments

Popular posts from this blog

Picture In Picture | Android Studio | Kotlin

Manage External Storage Permission | Android Studio | Kotlin

How to add AIDL folder | Android Studio