android.app.AlertDialog is the class that used to create and manipulate an alert dialog. This article will show you examples about how to implement various Alert Dialog in android application.
android.app.AlertDialog is very powerful, you can use it to create below different types of dialog.
- Contains message and confirm buttons alert dialog.
- Contains list items and confirm buttons alert dialog.
- Contains single choice radio button and confirm buttons alert dialog.
- Contains multiple choice checkbox and confirm buttons alert dialog.
1. Steps To Create Android Alert Dialog.
- Create an instance of AlertDialog.Builder class.
- Call AlertDialog.Builder‘s setTitle(), setIcon(), setMessage() or setItems() method to set related data.
- Call AlertDialog.Builder‘s create() method to create the alert dialog.
- Call AlertDialog.Builder‘s show() method to show the alert dialog.
2. AlertDialog.Builder Methods.
- setTitle() : Set dialog title.
- setIcon() : Set dialog icon.
- setMessage() : Set the alert dialog display messages.
- setPositiveButton() : Set OK button’s text and click event listener.
- setNegativeButton() : Set Cancel button’s text and click event listener.
- setNeutralButton() : Set Neutral button’s text and click event listener.
- setItems() : Set alert dialog’s content with list items.
- setSingleChoiceItems() : Set alert dialog’s content with single choice radio button.
- setMultiChoiceItems(): Set alert dialog’s content with multiple choice checkbox.
- setAdapter() : Set alert dialog’s content with custom defined list items.
- setView() : Set alert dialog’s content with custom defined view object.
- setCancelable() : Set whether the alert dialog can be canceled or not.
- create() : Create an AlertDialog instance.
- show() : Show the alert dialog.
- AlertDialog.cancel() : Close the alert dialog. This method belongs to AlertDialog class, AlergDialog.Builder class do not has such method.
3. Android Alert Dialog Examples.
If you can not watch the above video, you can see it on the youtube URL https://youtu.be/PBSEyAbilXM
3.1 Layout Xml File.
activity_alert_dialog.xml
This file is saved in app / res / layout folder.
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <Button android:id="@+id/alertDialogButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Basic Alert Dialog" /> <Button android:id="@+id/alertDialogSimpleListButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Simple List Alert Dialog" /> <Button android:id="@+id/alertDialogSingleChoiceButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Single Choice Alert Dialog" /> <Button android:id="@+id/alertDialogMultipleCheckboxButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Multiple Checkbox Alert Dialog" /> <TextView android:id="@+id/alertDialogTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="20dp"/> </LinearLayout>
3.2 Activity Java Code.
AlertDialogActivity.java
package com.dev2qa.example; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class AlertDialogActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alert_dialog); setTitle("dev2qa.com --- Android AlertDialog Example"); TextView textView = (TextView)findViewById(R.id.alertDialogTextView); this.showBasicAlertDialog(textView); this.showSimpleListItemsInAlertDialog(textView); this.showSingleChoiceRadioInAlertDialog(textView); this.showMultipleCheckboxInAlertDialog(textView); } // Show basic alert dialog. private void showBasicAlertDialog(TextView textView) { final TextView textViewTmp = textView; Button alertDialogButton = (Button)findViewById(R.id.alertDialogButton); alertDialogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle("Customized Alert Dialog"); builder.setMessage("This is a simple alert dialog."); builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { textViewTmp.setText("You clicked OK button."); } }); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { textViewTmp.setText("You clicked Cancel button."); } }); builder.setNeutralButton("Neutral", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { textViewTmp.setText("You clicked Neutral button."); } }); builder.setCancelable(false); builder.show(); } }); } // Show simple list items in alert dialog. private void showSimpleListItemsInAlertDialog(TextView textView) { final TextView textViewTmp = textView; Button alertDialogButton = (Button)findViewById(R.id.alertDialogSimpleListButton); alertDialogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle("Customized Alert Dialog"); final String listItemArr[] = {"Java", "C++", "Python", "Javascript", "Html", "Android"}; builder.setItems(listItemArr, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int itemIndex) { textViewTmp.setText("You choose item " + listItemArr[itemIndex]); } }); builder.setCancelable(true); builder.show(); } }); } // Show single choice radio button in alert dialog. private void showSingleChoiceRadioInAlertDialog(TextView textView) { final TextView textViewTmp = textView; Button alertDialogButton = (Button)findViewById(R.id.alertDialogSingleChoiceButton); alertDialogButton.setOnClickListener(new View.OnClickListener() { private String chooseItem; @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle("Customized Alert Dialog"); final String listItemArr[] = {"Java", "C++", "Python", "Javascript", "Html", "Android"}; builder.setSingleChoiceItems(listItemArr, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int itemIndex) { chooseItem = listItemArr[itemIndex]; } }); builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { textViewTmp.setText("You select " + chooseItem); } }); builder.show(); } }); } // Show multiple choice checkbox in alert dialog. private void showMultipleCheckboxInAlertDialog(TextView textView) { final TextView textViewTmp = textView; Button alertDialogButton = (Button)findViewById(R.id.alertDialogMultipleCheckboxButton); alertDialogButton.setOnClickListener(new View.OnClickListener() { // Store user checked checkbox values. private Map<String, String> chooseDataMap = new HashMap<String, String>(); @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle("Customized Alert Dialog"); final String listItemArr[] = {"Java", "C++", "Python", "Javascript", "Html", "Android"}; builder.setMultiChoiceItems(listItemArr, new boolean[]{true, false, false, false, false, false}, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int itemIndex, boolean checked) { String checkboxString = listItemArr[itemIndex]; if(checked) { if(chooseDataMap.get(checkboxString)==null) { chooseDataMap.put(checkboxString, checkboxString); } }else { if(chooseDataMap.get(checkboxString)!=null) { chooseDataMap.remove(checkboxString); } } } }); builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { textViewTmp.setText("You select " + chooseDataMap.keySet().toString()); // Empty the data map. Set<String> keySet = chooseDataMap.keySet(); Iterator keySetIt = keySet.iterator(); while(keySetIt.hasNext()) { // Remove one element. String key = (String)keySetIt.next(); chooseDataMap.remove(key); // Recalculate keyset. keySet = chooseDataMap.keySet(); keySetIt = keySet.iterator(); } } }); builder.show(); } }); } }