Android Tutorial

Software Setup and Configuration

Android Studio

File Structure

Components

Core Topics

Layout

View

Button

Intent and Intent Filters

Toast

RecyclerView

Fragments

Adapters

Other UI Component

Image Loading Libraries

Date and Time

Material Design

Bars

Working with Google Maps

Chart

Animation

Database

Advance Android

Jetpack

Architecture

App Publish

App Monetization

Alert Dialog Box and How to create it in Android

An AlertDialog is a small window that prompts the user to make a decision or enter additional information. It doesn't fill the screen and is used for modal events that require users to take action before they can proceed. AlertDialog is particularly useful for drawing the user's attention to critical pieces of information and getting their decision on it.

Creating an AlertDialog in Android:

  • Simple AlertDialog with a message and one button:
new AlertDialog.Builder(this)
        .setTitle("Alert")
        .setMessage("This is a simple alert dialog.")
        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Continue with some action
            }
        })
        .setIcon(android.R.drawable.ic_dialog_alert)
        .show();
  • AlertDialog with two buttons:
new AlertDialog.Builder(this)
        .setTitle("Confirmation")
        .setMessage("Are you sure you want to proceed?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Continue with action
            }
        })
        .setNegativeButton("No", null)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .show();
  • AlertDialog with a list:
CharSequence[] items = {"Item 1", "Item 2", "Item 3"};
new AlertDialog.Builder(this)
        .setTitle("Choose an item")
        .setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // which refers to the index position of the clicked item
            }
        })
        .show();
  • AlertDialog with single choice (Radio buttons):
CharSequence[] items = {"Option 1", "Option 2", "Option 3"};
int selected = -1;  // No item selected by default
new AlertDialog.Builder(this)
        .setTitle("Choose an option")
        .setSingleChoiceItems(items, selected, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // which refers to the index position of the clicked item
                selected = which;
            }
        })
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                if (selected != -1) {
                    // Use the selected value
                }
            }
        })
        .setNegativeButton("Cancel", null)
        .show();
  • AlertDialog with multiple choices (Checkboxes):
CharSequence[] items = {"Option 1", "Option 2", "Option 3"};
boolean[] selectedItems = {false, false, false}; // this will hold the selection state
new AlertDialog.Builder(this)
        .setTitle("Choose options")
        .setMultiChoiceItems(items, selectedItems, new DialogInterface.OnMultiChoiceClickListener() {
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                selectedItems[which] = isChecked;
            }
        })
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Handle the selected items
            }
        })
        .setNegativeButton("Cancel", null)
        .show();

When implementing an AlertDialog, always consider the user experience. Ensure that the alerts are not intrusive and that they genuinely serve a purpose in the application. Too many alerts can lead to a negative user experience.

  1. Creating AlertDialog in Android example code:

    To create a basic AlertDialog in Android, you can use the AlertDialog.Builder class. Here's an example:

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Dialog Title")
           .setMessage("This is a simple AlertDialog.")
           .setPositiveButton("OK", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   // Handle positive button click
               }
           })
           .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   // Handle negative button click
               }
           })
           .show();
    
  2. AlertDialog theming and styling in Android:

    You can customize the appearance of the AlertDialog by creating a custom style in your styles.xml file and applying it to the AlertDialog. For example:

    <style name="MyAlertDialogStyle" parent="Theme.AppCompat.Dialog.Alert">
        <!-- Custom styling attributes -->
    </style>
    

    In code:

    AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
    
  3. Creating AlertDialog with input fields in Android:

    To create an AlertDialog with input fields, you can use the setView method to set a custom layout that includes EditText fields. Here's a simplified example:

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    LayoutInflater inflater = this.getLayoutInflater();
    View dialogView = inflater.inflate(R.layout.custom_dialog_with_input, null);
    
    builder.setView(dialogView)
           .setPositiveButton("OK", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   // Handle positive button click, and retrieve input values
                   EditText editText = dialogView.findViewById(R.id.editText);
                   String userInput = editText.getText().toString();
               }
           })
           .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   // Handle negative button click
               }
           })
           .show();
    

    Remember to define the custom layout (custom_dialog_with_input.xml) with the necessary EditText elements.