From db705ef67bebe00deaacc12201c5d92ae8b3f851 Mon Sep 17 00:00:00 2001 From: Scott Main Date: Tue, 11 Sep 2012 20:47:48 -0700 Subject: [PATCH] re-write the Dialog guide to focus on using DialogFragment Change-Id: Ia7812f4dab5d6c3d2f945da009891239b9d8d5e3 --- docs/html/guide/topics/ui/dialogs.jd | 1398 +++++++++-------- docs/html/images/dialog_buttons.png | Bin 3701 -> 0 bytes docs/html/images/dialog_custom.png | Bin 4018 -> 0 bytes docs/html/images/dialog_list.png | Bin 3830 -> 0 bytes docs/html/images/dialog_progress_bar.png | Bin 2562 -> 0 bytes docs/html/images/dialog_progress_spinning.png | Bin 2648 -> 0 bytes docs/html/images/dialog_singlechoicelist.png | Bin 5071 -> 0 bytes docs/html/images/ui/dialog_buttons.png | Bin 0 -> 8454 bytes docs/html/images/ui/dialog_checkboxes.png | Bin 0 -> 33386 bytes docs/html/images/ui/dialog_custom.png | Bin 0 -> 21804 bytes docs/html/images/ui/dialog_list.png | Bin 0 -> 13531 bytes docs/html/images/ui/dialogs.png | Bin 0 -> 36234 bytes docs/html/images/ui/dialogs_regions.png | Bin 0 -> 13355 bytes 13 files changed, 762 insertions(+), 636 deletions(-) delete mode 100755 docs/html/images/dialog_buttons.png delete mode 100755 docs/html/images/dialog_custom.png delete mode 100755 docs/html/images/dialog_list.png delete mode 100755 docs/html/images/dialog_progress_bar.png delete mode 100755 docs/html/images/dialog_progress_spinning.png delete mode 100755 docs/html/images/dialog_singlechoicelist.png create mode 100644 docs/html/images/ui/dialog_buttons.png create mode 100644 docs/html/images/ui/dialog_checkboxes.png create mode 100644 docs/html/images/ui/dialog_custom.png create mode 100644 docs/html/images/ui/dialog_list.png create mode 100644 docs/html/images/ui/dialogs.png create mode 100644 docs/html/images/ui/dialogs_regions.png diff --git a/docs/html/guide/topics/ui/dialogs.jd b/docs/html/guide/topics/ui/dialogs.jd index d1c24dfbbe100..62c054aeede81 100644 --- a/docs/html/guide/topics/ui/dialogs.jd +++ b/docs/html/guide/topics/ui/dialogs.jd @@ -1,680 +1,806 @@ page.title=Dialogs -parent.title=User Interface -parent.link=index.html @jd:body + +
-

A dialog is usually a small window that appears in front of the current Activity. -The underlying Activity loses focus and the dialog accepts all user interaction. Dialogs are -normally used for notifications that should interrupt the user and to perform short tasks that -directly relate to the application in progress (such as a progress bar or a login prompt).

- -

The {@link android.app.Dialog} class is the base class for creating dialogs. However, you -typically should not instantiate a {@link android.app.Dialog} directly. Instead, you should use one -of the following subclasses:

-
-
{@link android.app.AlertDialog}
-
A dialog that can manage zero, one, two, or three buttons, and/or a list of - selectable items that can include checkboxes or radio buttons. The AlertDialog - is capable of constructing most dialog user interfaces and is the suggested dialog type. - See Creating an AlertDialog below.
-
{@link android.app.ProgressDialog}
-
A dialog that displays a progress wheel or progress bar. Because it's an extension of - the AlertDialog, it also supports buttons. - See Creating a ProgressDialog below.
-
{@link android.app.DatePickerDialog}
-
A dialog that allows the user to select a date. See the - Hello DatePicker tutorial.
-
{@link android.app.TimePickerDialog}
-
A dialog that allows the user to select a time. See the - Hello TimePicker tutorial.
-
- -

If you would like to customize your own dialog, you can extend the -base {@link android.app.Dialog} object or any of the subclasses listed above and define a new layout. -See the section on Creating a Custom Dialog below.

+

A dialog is a small window that prompts the user to +make a decision or enter additional information. A dialog does not fill the screen and is +normally used for modal events that require users to take an action before they can proceed.

Dialog Design

-

For design guidelines, read Android Design's Dialogs guide.

+

For information about how to design your dialogs, including recommendations + for language, read the Dialogs design guide.

+ + +

The {@link android.app.Dialog} class is the base class for dialogs, but you +should avoid instantiating {@link android.app.Dialog} directly. +Instead, use one of the following subclasses:

+
+
{@link android.app.AlertDialog}
+
A dialog that can show a title, up to three buttons, a list of + selectable items, or a custom layout.
+
{@link android.app.DatePickerDialog} or {@link android.app.TimePickerDialog}
+
A dialog with a pre-defined UI that allows the user to select a date or time.
+
+ + + +

These classes define the style and structure for your dialog, but you should +use a {@link android.support.v4.app.DialogFragment} as a container for your dialog. +The {@link android.support.v4.app.DialogFragment} class provides all the controls you +need to create your dialog and manage its appearance, instead of calling methods +on the {@link android.app.Dialog} object.

+ +

Using {@link android.support.v4.app.DialogFragment} to manage the dialog +ensures that it correctly handles lifecycle events +such as when the user presses the Back button or rotates the screen. The {@link +android.support.v4.app.DialogFragment} class also allows you to reuse the dialog's UI as an +embeddable component in a larger UI, just like a traditional {@link +android.support.v4.app.Fragment} (such as when you want the dialog UI to appear differently +on large and small screens).

+ +

The following sections in this guide describe how to use a {@link +android.support.v4.app.DialogFragment} in combination with an {@link android.app.AlertDialog} +object. If you'd like to create a date or time picker, you should instead read the +Pickers guide.

+ +

Note: +Because the {@link android.app.DialogFragment} class was originally added with +Android 3.0 (API level 11), this document describes how to use the {@link +android.support.v4.app.DialogFragment} class that's provided with the Support Library. By adding this library +to your app, you can use {@link android.support.v4.app.DialogFragment} and a variety of other +APIs on devices running Android 1.6 or higher. If the minimum version your app supports +is API level 11 or higher, then you can use the framework version of {@link +android.app.DialogFragment}, but be aware that the links in this document are for the support +library APIs. When using the support library, +be sure that you import android.support.v4.app.DialogFragment +class and not android.app.DialogFragment.

+ + +

Creating a Dialog Fragment

+ +

You can accomplish a wide variety of dialog designs—including +custom layouts and those described in the Dialogs +design guide—by extending +{@link android.support.v4.app.DialogFragment} and creating a {@link android.app.AlertDialog} +in the {@link android.support.v4.app.DialogFragment#onCreateDialog +onCreateDialog()} callback method.

+ +

For example, here's a basic {@link android.app.AlertDialog} that's managed within +a {@link android.support.v4.app.DialogFragment}:

+ +
+public class FireMissilesDialog extends DialogFragment {
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Use the Builder class for convenient dialog construction
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setMessage(R.string.dialog_fire_missiles)
+               .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
+                   public void onClick(DialogInterface dialog, int id) {
+                       // FIRE ZE MISSILES!
+                   }
+               })
+               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+                   public void onClick(DialogInterface dialog, int id) {
+                       // User cancelled the dialog
+                   }
+               });
+        // Create the AlertDialog object and return it
+        return builder.create();
+    }
+}
+
+ +
+ +

Figure 1. +A dialog with a message and two action buttons.

+
+ +

Now, when you create an instance of this class and call {@link +android.support.v4.app.DialogFragment#show show()} on that object, the dialog appears as +shown in figure 1.

+ +

The next section describes more about using the {@link android.app.AlertDialog.Builder} +APIs to create the dialog.

+ +

Depending on how complex your dialog is, you can implement a variety of other callback +methods in the {@link android.support.v4.app.DialogFragment}, including all the basic +fragment lifecycle methods. + + + + + +

Building an Alert Dialog

+ + +

The {@link android.app.AlertDialog} class allows you to build a variety of dialog designs and +is often the only dialog class you'll need. +As shown in figure 2, there are three regions of an alert dialog:

+ +
+ +

Figure 2. The layout of a dialog.

+
+ +
    +
  1. Title +

    This is optional and should be used only when the content area + is occupied by a detailed message, a list, or custom layout. If you need to state + a simple message or question (such as the dialog in figure 1), you don't need a title.

  2. +
  3. Content area +

    This can display a message, a list, or other custom layout.

  4. +
  5. Action buttons +

    There should be no more than three action buttons in a dialog.

  6. +
+ +

The {@link android.app.AlertDialog.Builder} +class provides APIs that allow you to create an {@link android.app.AlertDialog} +with these kinds of content, including a custom layout.

+ +

To build an {@link android.app.AlertDialog}:

+ +
+// 1. Instantiate an {@link android.app.AlertDialog.Builder} with its constructor
+AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+
+// 2. Chain together various setter methods to set the dialog characteristics
+builder.setMessage(R.string.dialog_message)
+       .setTitle(R.string.dialog_title);
+
+// 3. Get the {@link android.app.AlertDialog} from {@link android.app.AlertDialog.Builder#create()}
+AlertDialog dialog = builder.create();
+
+ +

The following topics show how to define various dialog attributes using the +{@link android.app.AlertDialog.Builder} class.

+ + + + +

Adding buttons

+ +

To add action buttons like those in figure 2, +call the {@link android.app.AlertDialog.Builder#setPositiveButton setPositiveButton()} and +{@link android.app.AlertDialog.Builder#setNegativeButton setNegativeButton()} methods:

+ +
+AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+// Add the buttons
+builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+           public void onClick(DialogInterface dialog, int id) {
+               // User clicked OK button
+           }
+       });
+builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+           public void onClick(DialogInterface dialog, int id) {
+               // User cancelled the dialog
+           }
+       });
+// Set other dialog properties
+...
+
+// Create the AlertDialog
+AlertDialog dialog = builder.create();
+
+ +

The set...Button() methods require a title for the button (supplied +by a string resource) and a +{@link android.content.DialogInterface.OnClickListener} that defines the action to take +when the user presses the button.

+ +

There are three different action buttons you can add:

+
+
Positive
+
You should use this to accept and continue with the action (the "OK" action).
+
Negative
+
You should use this to cancel the action.
+
Neutral
+
You should use this when the user may not want to proceed with the action, + but doesn't necessarily want to cancel. It appears between the positive and negative + buttons. For example, the action might be "Remind me later."
+
+ +

You can add only one of each button type to an {@link +android.app.AlertDialog}. That is, you cannot have more than one "positive" button.

+ + + +
+ +

Figure 3. +A dialog with a title and list.

+
+ +

Adding a list

+ +

There are three kinds of lists available with the {@link android.app.AlertDialog} APIs:

+ + +

To create a single-choice list like the one in figure 3, +use the {@link android.app.AlertDialog.Builder#setItems setItems()} method:

+ +
+@Override
+public Dialog onCreateDialog(Bundle savedInstanceState) {
+    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+    builder.setTitle(R.string.pick_color);
+           .setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
+               public void onClick(DialogInterface dialog, int which) {
+               // The 'which' argument contains the index position
+               // of the selected item
+           }
+    });
+    return builder.create();
+}
+
+ +

Because the list appears in the dialog's content area, +the dialog cannot show both a message and a list and you should set a title for the +dialog with {@link android.app.AlertDialog.Builder#setTitle setTitle()}. +To specify the items for the list, call {@link +android.app.AlertDialog.Builder#setItems setItems()}, passing an array. +Alternatively, you can specify a list using {@link +android.app.AlertDialog.Builder#setAdapter setAdapter()}. This allows you to back the list +with dynamic data (such as from a database) using a {@link android.widget.ListAdapter}.

+ +

If you choose to back your list with a {@link android.widget.ListAdapter}, +always use a {@link android.support.v4.content.Loader} so that the content loads +asynchronously. This is described further in +Building Layouts +with an Adapter and the Loaders +guide.

+ +

Note: By default, touching a list item dismisses the dialog, +unless you're using one of the following persistent choice lists.

+ +
+ +

Figure 4. +A list of multiple-choice items.

+
+ + +

Adding a persistent multiple-choice or single-choice list

+ +

To add a list of multiple-choice items (checkboxes) or +single-choice items (radio buttons), use the +{@link android.app.AlertDialog.Builder#setMultiChoiceItems(Cursor,String,String, +DialogInterface.OnMultiChoiceClickListener) setMultiChoiceItems()} or +{@link android.app.AlertDialog.Builder#setSingleChoiceItems(int,int,DialogInterface.OnClickListener) +setSingleChoiceItems()} methods, respectively.

+ +

For example, here's how you can create a multiple-choice list like the +one shown in figure 4 that saves the selected +items in an {@link java.util.ArrayList}:

+ +
+@Override
+public Dialog onCreateDialog(Bundle savedInstanceState) {
+    mSelectedItems = new ArrayList();  // Where we track the selected items
+    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+    // Set the dialog title
+    builder.setTitle(R.string.pick_toppings)
+    // Specify the list array, the items to be selected by default (null for none),
+    // and the listener through which to receive callbacks when items are selected
+           .setMultiChoiceItems(R.array.toppings, null,
+                      new DialogInterface.OnMultiChoiceClickListener() {
+               @Override
+               public void onClick(DialogInterface dialog, int which,
+                       boolean isChecked) {
+                   if (isChecked) {
+                       // If the user checked the item, add it to the selected items
+                       mSelectedItems.add(which);
+                   } else if (mSelectedItems.contains(which)) {
+                       // Else, if the item is already in the array, remove it 
+                       mSelectedItems.remove(Integer.valueOf(which));
+                   }
+               }
+           })
+    // Set the action buttons
+           .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+               @Override
+               public void onClick(DialogInterface dialog, int id) {
+                   // User clicked OK, so save the mSelectedItems results somewhere
+                   // or return them to the component that opened the dialog
+                   ...
+               }
+           })
+           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+               @Override
+               public void onClick(DialogInterface dialog, int id) {
+                   ...
+               }
+           });
+
+    return builder.create();
+}
+
+ +

Although both a traditional list and a list with radio buttons +provide a "single choice" action, you should use {@link +android.app.AlertDialog.Builder#setSingleChoiceItems(int,int,DialogInterface.OnClickListener) +setSingleChoiceItems()} if you want to persist the user's choice. +That is, if opening the dialog again later should indicate what the user's current choice is, +then you create a list with radio buttons.

+ + + + + +

Creating a Custom Layout

+ +
+ +

Figure 5. A custom dialog layout.

+
+ +

If you want a custom layout in a dialog, create a layout and add it to an +{@link android.app.AlertDialog} by calling {@link +android.app.AlertDialog.Builder#setView setView()} on your {@link +android.app.AlertDialog.Builder} object.

+ +

By default, the custom layout fills the dialog window, but you can still +use {@link android.app.AlertDialog.Builder} methods to add buttons and a title.

+ +

For example, here's the layout file for the dialog in Figure 5:

+ +

res/layout/dialog_signin.xml

+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content">
+    <ImageView
+        android:src="@drawable/header_logo"
+        android:layout_width="match_parent"
+        android:layout_height="64dp"
+        android:scaleType="center"
+        android:background="#FFFFBB33"
+        android:contentDescription="@string/app_name" />
+    <EditText
+        android:id="@+id/username"
+        android:inputType="textEmailAddress"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:layout_marginLeft="4dp"
+        android:layout_marginRight="4dp"
+        android:layout_marginBottom="4dp"
+        android:hint="@string/username" />
+    <EditText
+        android:id="@+id/password"
+        android:inputType="textPassword"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="4dp"
+        android:layout_marginLeft="4dp"
+        android:layout_marginRight="4dp"
+        android:layout_marginBottom="16dp"
+        android:fontFamily="sans-serif"
+        android:hint="@string/password"/>
+</LinearLayout>
+
+ +

Tip: By default, when you set an {@link android.widget.EditText} +element to use the {@code "textPassword"} input type, the font family is set to monospace, so +you should change its font family to {@code "sans-serif"} so that both text fields use +a matching font style.

+ +

To inflate the layout in your {@link android.support.v4.app.DialogFragment}, +get a {@link android.view.LayoutInflater} with +{@link android.app.Activity#getLayoutInflater()} and call +{@link android.view.LayoutInflater#inflate inflate()}, where the first parameter +is the layout resource ID and the second parameter is a parent view for the layout. +You can then call {@link android.app.AlertDialog#setView setView()} +to place the layout in the dialog.

+ +
+@Override
+public Dialog onCreateDialog(Bundle savedInstanceState) {
+    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+    // Get the layout inflater
+    LayoutInflater inflater = getActivity().getLayoutInflater();
+
+    // Inflate and set the layout for the dialog
+    // Pass null as the parent view because its going in the dialog layout
+    builder.setView(inflater.inflate(R.layout.dialog_signin, null))
+    // Add action buttons
+           .setPositiveButton(R.string.signin, new DialogInterface.OnClickListener() {
+               @Override
+               public void onClick(DialogInterface dialog, int id) {
+                   // sign in the user ...
+               }
+           })
+           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+               public void onClick(DialogInterface dialog, int id) {
+                   NoticeDialog.this.getDialog().cancel();
+               }
+           });      
+    return builder.create();
+}
+
+ +
+

Tip: If you want a custom dialog, +you can instead display an {@link android.app.Activity} as a dialog +instead of using the {@link android.app.Dialog} APIs. Simply create an activity and set its theme to +{@link android.R.style#Theme_Holo_Dialog Theme.Holo.Dialog} +in the {@code +<activity>} manifest element:

+ +
+<activity android:theme="@android:style/Theme.Holo.Dialog" >
+
+

That's it. The activity now displays in a dialog window instead of fullscreen.

+
+ + + +

Passing Events Back to the Dialog's Host

+ +

When the user touches one of the dialog's action buttons or selects an item from its list, +your {@link android.support.v4.app.DialogFragment} might perform the necessary +action itself, but often you'll want to deliver the event to the activity or fragment that +opened the dialog. To do this, define an interface with a method for each type of click event, +then implement that interface in the host component that will +receive the action events from the dialog.

+ +

For example, here's a {@link android.support.v4.app.DialogFragment} that defines an +interface through which it delivers the events back to the host activity:

+ +
+public class NoticeDialog extends DialogFragment {
+    
+    /* The activity that creates an instance of this dialog fragment must
+     * implement this interface in order to receive event callbacks.
+     * Each method passes the DialogFragment in case the host needs to query it. */
+    public interface NoticeDialogListener {
+        public void onDialogPositiveClick(DialogFragment dialog);
+        public void onDialogNegativeClick(DialogFragment dialog);
+    }
+    
+    // Use this instance of the interface to deliver action events
+    static NoticeDialogListener mListener;
+        
+    /* Call this to instantiate a new NoticeDialog.
+     * @param activity  The activity hosting the dialog, which must implement the
+     *                  NoticeDialogListener to receive event callbacks.
+     * @returns A new instance of NoticeDialog.
+     * @throws  ClassCastException if the host activity does not
+     *          implement NoticeDialogListener
+     */
+    public static NoticeDialog newInstance(Activity activity) {
+        // Verify that the host activity implements the callback interface
+        try {
+            // Instantiate the NoticeDialogListener so we can send events with it
+            mListener = (NoticeDialogListener) activity;
+        } catch (ClassCastException e) {
+            // The activity doesn't implement the interface, throw exception
+            throw new ClassCastException(activity.toString()
+                    + " must implement NoticeDialogListener");
+        }
+        NoticeDialog frag = new NoticeDialog();
+        return frag;
+    }
+    
+    ...
+}
+
+ +

The activity hosting the dialog creates and shows an instance of the dialog +by calling {@code NoticeDialog.newInstance()} and receives the dialog's +events through an implementation of the {@code NoticeDialogListener} interface:

+ +
+public class MainActivity extends FragmentActivity
+                          implements NoticeDialog.NoticeDialogListener{
+    ...
+    
+    public void showNoticeDialog() {
+        // Create an instance of the dialog fragment and show it
+        DialogFragment dialog = NoticeDialog.newInstance(this);
+        dialog.show(getSupportFragmentManager(), "NoticeDialog");
+    }
+
+    @Override
+    public void onDialogPositiveClick(DialogFragment dialog) {
+        // User touched the dialog's positive button
+        ...
+    }
+
+    @Override
+    public void onDialogNegativeClick(DialogFragment dialog) {
+        // User touched the dialog's negative button
+        ...
+    }
+}
+
+ +

Because the host activity implements the {@code NoticeDialogListener}—which is +enforced by the {@code newInstance()} method shown above—the dialog fragment can use the +interface callback methods to deliver click events to the activity:

+ +
+public class NoticeDialog extends DialogFragment {
+    ...
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Build the dialog and set up the button click handlers
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setMessage(R.string.dialog_fire_missiles)
+               .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
+                   public void onClick(DialogInterface dialog, int id) {
+                       // Send the positive button event back to the host activity
+                       mListener.onDialogPositiveClick(NoticeDialog.this);
+                   }
+               })
+               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+                   public void onClick(DialogInterface dialog, int id) {
+                       // Send the negative button event back to the host activity
+                       mListener.onDialogPositiveClick(NoticeDialog.this);
+                   }
+               });
+        return builder.create();
+    }
+}
+
+ + +

Showing a Dialog

-

A dialog is always created and displayed as a part of an {@link android.app.Activity}. -You should normally create dialogs from within your Activity's -{@link android.app.Activity#onCreateDialog(int)} callback method. -When you use this callback, the Android system automatically manages the state of -each dialog and hooks them to the Activity, effectively making it the "owner" of each dialog. -As such, each dialog inherits certain properties from the Activity. For example, when a dialog -is open, the Menu key reveals the options menu defined for the Activity and the volume -keys modify the audio stream used by the Activity.

+

When you want to show your dialog, create an instance of your {@link +android.support.v4.app.DialogFragment} and call {@link android.support.v4.app.DialogFragment#show +show()}, passing the {@link android.support.v4.app.FragmentManager} and a tag name +for the dialog fragment.

-

Note: If you decide to create a dialog outside of the -onCreateDialog() method, it will not be attached to an Activity. You can, however, -attach it to an Activity with {@link android.app.Dialog#setOwnerActivity(Activity)}.

+

You can get the {@link android.support.v4.app.FragmentManager} by calling +{@link android.support.v4.app.FragmentActivity#getSupportFragmentManager()} from +the {@link android.support.v4.app.FragmentActivity} or {@link +android.support.v4.app.Fragment#getFragmentManager()} from a {@link +android.support.v4.app.Fragment}. For example:

-

When you want to show a dialog, call -{@link android.app.Activity#showDialog(int)} and pass it an integer that uniquely identifies the -dialog that you want to display.

- -

When a dialog is requested for the first time, Android calls -{@link android.app.Activity#onCreateDialog(int)} from your Activity, which is -where you should instantiate the {@link android.app.Dialog}. This callback method -is passed the same ID that you passed to {@link android.app.Activity#showDialog(int)}. -After you create the Dialog, return the object at the end of the method.

- -

Before the dialog is displayed, Android also calls the optional callback method -{@link android.app.Activity#onPrepareDialog(int,Dialog)}. Define this method if you want to change -any properties of the dialog each time it is opened. This method is called -every time a dialog is opened, whereas {@link android.app.Activity#onCreateDialog(int)} is only -called the very first time a dialog is opened. If you don't define -{@link android.app.Activity#onPrepareDialog(int,Dialog) onPrepareDialog()}, then the dialog will -remain the same as it was the previous time it was opened. This method is also passed the dialog's -ID, along with the Dialog object you created in {@link android.app.Activity#onCreateDialog(int) -onCreateDialog()}.

- -

The best way to define the {@link android.app.Activity#onCreateDialog(int)} and -{@link android.app.Activity#onPrepareDialog(int,Dialog)} callback methods is with a -switch statement that checks the id parameter that's passed into the method. -Each case should check for a unique dialog ID and then create and define the respective Dialog. -For example, imagine a game that uses two different dialogs: one to indicate that the game -has paused and another to indicate that the game is over. First, define an integer ID for -each dialog:

-static final int DIALOG_PAUSED_ID = 0;
-static final int DIALOG_GAMEOVER_ID = 1;
-
- -

Then, define the {@link android.app.Activity#onCreateDialog(int)} callback with a -switch case for each ID:

-
-protected Dialog onCreateDialog(int id) {
-    Dialog dialog;
-    switch(id) {
-    case DIALOG_PAUSED_ID:
-        // do the work to define the pause Dialog
-        break;
-    case DIALOG_GAMEOVER_ID:
-        // do the work to define the game over Dialog
-        break;
-    default:
-        dialog = null;
-    }
-    return dialog;
+public void confirmFireMissiles() {
+    DialogFragment newFragment = FireMissilesDialog.newInstance(this);
+    newFragment.show(getSupportFragmentManager(), "missiles");
 }
 
-

Note: In this example, there's no code inside -the case statements because the procedure for defining your Dialog is outside the scope -of this section. See the section below about Creating an AlertDialog, -offers code suitable for this example.

+

The second argument, {@code "missiles"}, is a unique tag name that the system uses to save +and restore the fragment state when necessary. The tag also allows you to get a handle to +the fragment by calling {@link android.support.v4.app.FragmentManager#findFragmentByTag +findFragmentByTag()}.

+ + + + +

Showing a Dialog Fullscreen or as an Embedded Fragment

+ +

You might have a UI design in which you want a piece of the UI to appear as a dialog in some +situations, but as a full screen or embedded fragment in others (perhaps depending on whether +the device is a large screen or small screen). The {@link android.support.v4.app.DialogFragment} +class offers you this flexibility because it can still behave as an embeddable {@link +android.support.v4.app.Fragment}.

+ +

However, you cannot use {@link android.app.AlertDialog.Builder AlertDialog.Builder} +or other {@link android.app.Dialog} objects to build the dialog in this case. If +you want the {@link android.support.v4.app.DialogFragment} to be +embeddable, you must define the dialog's UI in a layout, then load the layout in the +{@link android.support.v4.app.DialogFragment#onCreateView +onCreateView()} callback.

+ +

Here's an example {@link android.support.v4.app.DialogFragment} that can appear as either a +dialog or an embeddable fragment (using a layout named purchase_items.xml):

-

When it's time to show one of the dialogs, call {@link android.app.Activity#showDialog(int)} -with the ID of a dialog:

-showDialog(DIALOG_PAUSED_ID);
+public class CustomLayoutDialog extends DialogFragment {
+    /** The system calls this to get the DialogFragment's layout, regardless
+        of whether it's being displayed as a dialog or an embedded fragment. */
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Inflate the layout to use as dialog or embedded fragment
+        return inflater.inflate(R.layout.purchase_items, container, false);
+    }
+  
+    /** The system calls this only when creating the layout in a dialog. */
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // The only reason you might override this method when using onCreateView() is
+        // to modify any dialog characteristics. For example, the dialog includes a
+        // title by default, but your custom layout might not need it. So here you can
+        // remove the dialog title, but you must call the superclass to get the Dialog.
+        Dialog dialog = super.onCreateDialog(savedInstanceState);
+        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+        return dialog;
+    }
+}
 
+

And here's some code that decides whether to show the fragment as a dialog +or a fullscreen UI, based on the screen size:

+ +
+public void showDialog() {
+    FragmentManager fragmentManager = getSupportFragmentManager();
+    CustomLayoutDialog newFragment = new CustomLayoutDialog();
+    
+    if (mIsLargeLayout) {
+        // The device is using a large layout, so show the fragment as a dialog
+        newFragment.show(fragmentManager, "dialog");
+    } else {
+        // The device is smaller, so show the fragment fullscreen
+        FragmentTransaction transaction = fragmentManager.beginTransaction();
+        // For a little polish, specify a transition animation
+        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
+        // To make it fullscreen, use the 'content' root view as the container
+        // for the fragment, which is always the root view for the activity
+        transaction.add(android.R.id.content, newFragment)
+                   .addToBackStack(null).commit();
+    }
+}
+
+ +

For more information about performing fragment transactions, see the +Fragments guide.

+ +

In this example, the mIsLargeLayout boolean specifies whether the current device +should use the app's large layout design (and thus show this fragment as a dialog, rather +than fullscreen). The best way to set this kind of boolean is to declare a +bool resource value +with an alternative resource value for different screen sizes. For example, here are two +versions of the bool resource for different screen sizes:

+ +

res/values/bools.xml

+
+<!-- Default boolean values -->
+<resources>
+    <bool name="large_layout">false</bool>
+</resources>
+
+ +

res/values-large/bools.xml

+
+<!-- Large screen boolean values -->
+<resources>
+    <bool name="large_layout">true</bool>
+</resources>
+
+ +

Then you can initialize the {@code mIsLargeLayout} value during the activity's +{@link android.app.Activity#onCreate onCreate()} method:

+ +
+boolean mIsLargeLayout;
+
+@Override
+public void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    setContentView(R.layout.activity_main);
+
+    mIsLargeLayout = getResources().getBoolean(R.bool.large_layout);
+}
+
+ + + +

Showing an activity as a dialog on large screens

+ +

Instead of showing a dialog as a fullscreen UI when on small screens, you can accomplish +the same result by showing an {@link android.app.Activity} as a dialog when on +large screens. Which approach you choose depends on your app design, but +showing an activity as a dialog is often useful when your app is already designed for small +screens and you'd like to improve the experience on tablets by showing a short-lived activity +as a dialog.

+ +

To show an activity as a dialog only when on large screens, +apply the {@link android.R.style#Theme_Holo_DialogWhenLarge Theme.Holo.DialogWhenLarge} +theme to the {@code +<activity>} manifest element:

+ +
+<activity android:theme="@android:style/Theme.Holo.DialogWhenLarge" >
+
+ +

For more information about styling your activities with themes, see the Styles and Themes guide.

+ +

Dismissing a Dialog

-

When you're ready to close your dialog, you can dismiss it by calling -{@link android.app.Dialog#dismiss()} on the Dialog object. -If necessary, you can also call {@link android.app.Activity#dismissDialog(int)} from the -Activity, which effectively calls {@link android.app.Dialog#dismiss()} on the -Dialog for you.

- -

If you are using {@link android.app.Activity#onCreateDialog(int)} to manage the state -of your dialogs (as discussed in the previous section), then every time your dialog is -dismissed, the state of the Dialog -object is retained by the Activity. If you decide that you will no longer need this object or -it's important that the state is cleared, then you should call -{@link android.app.Activity#removeDialog(int)}. This will remove any internal references -to the object and if the dialog is showing, it will dismiss it.

- -

Using dismiss listeners

- -

If you'd like your application to perform some procedures the moment that a dialog is dismissed, -then you should attach an on-dismiss listener to your Dialog.

- -

First define the {@link android.content.DialogInterface.OnDismissListener} interface. -This interface has just one method, -{@link android.content.DialogInterface.OnDismissListener#onDismiss(DialogInterface)}, which -will be called when the dialog is dismissed. -Then simply pass your OnDismissListener implementation to -{@link android.app.Dialog#setOnDismissListener(DialogInterface.OnDismissListener) -setOnDismissListener()}.

- -

However, note that dialogs can also be "cancelled." This is a special case that indicates -the dialog was explicitly cancelled by the user. This will occur if the user presses the -"back" button to close the dialog, or if the dialog explicitly calls {@link android.app.Dialog#cancel()} -(perhaps from a "Cancel" button in the dialog). When a dialog is cancelled, -the OnDismissListener will still be notified, but if you'd like to be informed that the dialog -was explicitly cancelled (and not dismissed normally), then you should register -an {@link android.content.DialogInterface.OnCancelListener} with -{@link android.app.Dialog#setOnCancelListener(DialogInterface.OnCancelListener) -setOnCancelListener()}.

- - -

Creating an AlertDialog

- -

An {@link android.app.AlertDialog} is an extension of the {@link android.app.Dialog} -class. It is capable of constructing most dialog user interfaces and is the suggested dialog type. -You should use it for dialogs that use any of the following features:

- - -

To create an AlertDialog, use the {@link android.app.AlertDialog.Builder} subclass. -Get a Builder with {@link android.app.AlertDialog.Builder#AlertDialog.Builder(Context)} and -then use the class's public methods to define all of the -AlertDialog properties. After you're done with the Builder, retrieve the -AlertDialog object with {@link android.app.AlertDialog.Builder#create()}.

- -

The following topics show how to define various properties of the AlertDialog using the -AlertDialog.Builder class. If you use any of the following sample code inside your -{@link android.app.Activity#onCreateDialog(int) onCreateDialog()} callback method, -you can return the resulting Dialog object to display the dialog.

- - -

Adding buttons

- - - -

To create an AlertDialog with side-by-side buttons like the one shown in the screenshot to the right, -use the set...Button() methods:

- -
-AlertDialog.Builder builder = new AlertDialog.Builder(this);
-builder.setMessage("Are you sure you want to exit?")
-       .setCancelable(false)
-       .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
-           public void onClick(DialogInterface dialog, int id) {
-                MyActivity.this.finish();
-           }
-       })
-       .setNegativeButton("No", new DialogInterface.OnClickListener() {
-           public void onClick(DialogInterface dialog, int id) {
-                dialog.cancel();
-           }
-       });
-AlertDialog alert = builder.create();
-
- -

First, add a message for the dialog with -{@link android.app.AlertDialog.Builder#setMessage(CharSequence)}. Then, begin -method-chaining and set the dialog -to be not cancelable (so the user cannot close the dialog with the back button) -with {@link android.app.AlertDialog.Builder#setCancelable(boolean)}. For each button, -use one of the set...Button() methods, such as -{@link android.app.AlertDialog.Builder#setPositiveButton(CharSequence,DialogInterface.OnClickListener) -setPositiveButton()}, that accepts the name for the button and a -{@link android.content.DialogInterface.OnClickListener} that defines the action to take -when the user selects the button.

- -

Note: You can only add one of each button type to the -AlertDialog. That is, you cannot have more than one "positive" button. This limits the number -of possible buttons to three: positive, neutral, and negative. These names are technically irrelevant to the -actual functionality of your buttons, but should help you keep track of which one does what.

- - -

Adding a list

- - - -

To create an AlertDialog with a list of selectable items like the one shown to the right, -use the setItems() method:

- -
-final CharSequence[] items = {"Red", "Green", "Blue"};
-
-AlertDialog.Builder builder = new AlertDialog.Builder(this);
-builder.setTitle("Pick a color");
-builder.setItems(items, new DialogInterface.OnClickListener() {
-    public void onClick(DialogInterface dialog, int item) {
-        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
-    }
-});
-AlertDialog alert = builder.create();
-
- -

First, add a title to the dialog with -{@link android.app.AlertDialog.Builder#setTitle(CharSequence)}. -Then, add a list of selectable items with -{@link android.app.AlertDialog.Builder#setItems(CharSequence[],DialogInterface.OnClickListener) -setItems()}, which accepts the array of items to display and a -{@link android.content.DialogInterface.OnClickListener} that defines the action to take -when the user selects an item.

- - -

Adding checkboxes and radio buttons

- - - -

To create a list of multiple-choice items (checkboxes) or -single-choice items (radio buttons) inside the dialog, use the -{@link android.app.AlertDialog.Builder#setMultiChoiceItems(Cursor,String,String, -DialogInterface.OnMultiChoiceClickListener) setMultiChoiceItems()} and -{@link android.app.AlertDialog.Builder#setSingleChoiceItems(int,int,DialogInterface.OnClickListener) -setSingleChoiceItems()} methods, respectively. -If you create one of these selectable lists in the -{@link android.app.Activity#onCreateDialog(int) onCreateDialog()} callback method, -Android manages the state of the list for you. As long as the Activity is active, -the dialog remembers the items that were previously selected, but when the user exits the -Activity, the selection is lost. - -

Note: To save the selection when the user leaves or -pauses the Activity, you must properly save and restore the setting throughout -the activity lifecycle. -To permanently save the selections, even when the Activity process is completely shutdown, -you need to save the settings -with one of the Data -Storage techniques.

- -

To create an AlertDialog with a list of single-choice items like the one shown to the right, -use the same code from the previous example, but replace the setItems() method with -{@link android.app.AlertDialog.Builder#setSingleChoiceItems(int,int,DialogInterface.OnClickListener) -setSingleChoiceItems()}:

- -
-final CharSequence[] items = {"Red", "Green", "Blue"};
-
-AlertDialog.Builder builder = new AlertDialog.Builder(this);
-builder.setTitle("Pick a color");
-builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
-    public void onClick(DialogInterface dialog, int item) {
-        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
-    }
-});
-AlertDialog alert = builder.create();
-
- -

The second parameter in the -{@link android.app.AlertDialog.Builder#setSingleChoiceItems(CharSequence[],int,DialogInterface.OnClickListener) -setSingleChoiceItems()} method is an integer value for the checkedItem, which indicates the -zero-based list position of the default selected item. Use "-1" to indicate that no item should be -selected by default.

- - -

Creating a ProgressDialog

- - - -

A {@link android.app.ProgressDialog} is an extension of the {@link android.app.AlertDialog} -class that can display a progress animation in the form of a spinning wheel, for a task with -progress that's undefined, or a progress bar, for a task that has a defined progression. -The dialog can also provide buttons, such as one to cancel a download.

- -

Opening a progress dialog can be as simple as calling -{@link android.app.ProgressDialog#show(Context,CharSequence,CharSequence) -ProgressDialog.show()}. For example, the progress dialog shown to the right can be -easily achieved without managing the dialog through the -{@link android.app.Activity#onCreateDialog(int)} callback, -as shown here:

- -
-ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", 
-                        "Loading. Please wait...", true);
-
- -

The first parameter is the application {@link android.content.Context}, -the second is a title for the dialog (left empty), the third is the message, -and the last parameter is whether the progress -is indeterminate (this is only relevant when creating a progress bar, which is -discussed in the next section). -

- -

The default style of a progress dialog is the spinning wheel. -If you want to create a progress bar that shows the loading progress with granularity, -some more code is required, as discussed in the next section.

- - -

Showing a progress bar

- - - -

To show the progression with an animated progress bar:

- -
    -
  1. Initialize the - ProgressDialog with the class constructor, - {@link android.app.ProgressDialog#ProgressDialog(Context)}.
  2. -
  3. Set the progress style to "STYLE_HORIZONTAL" with - {@link android.app.ProgressDialog#setProgressStyle(int)} and - set any other properties, such as the message.
  4. -
  5. When you're ready to show the dialog, call - {@link android.app.Dialog#show()} or return the ProgressDialog from the - {@link android.app.Activity#onCreateDialog(int)} callback.
  6. -
  7. You can increment the amount of progress displayed - in the bar by calling either {@link android.app.ProgressDialog#setProgress(int)} with a value for - the total percentage completed so far or {@link android.app.ProgressDialog#incrementProgressBy(int)} - with an incremental value to add to the total percentage completed so far.
  8. -
- -

For example, your setup might look like this:

-
-ProgressDialog progressDialog;
-progressDialog = new ProgressDialog(mContext);
-progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-progressDialog.setMessage("Loading...");
-progressDialog.setCancelable(false);
-
- -

The setup is simple. Most of the code needed to create a progress dialog is actually -involved in the process that updates it. You might find that it's -necessary to create a second thread in your application for this work and then report the progress -back to the Activity's UI thread with a {@link android.os.Handler} object. -If you're not familiar with using additional -threads with a Handler, see the example Activity below that uses a second thread to -increment a progress dialog managed by the Activity.

- - - - -
- - - Example ProgressDialog with a second thread -
-

This example uses a second thread to track the progress of a process (which actually just -counts up to 100). The thread sends a {@link android.os.Message} back to the main -Activity through a {@link android.os.Handler} each time progress is made. The main Activity then updates the -ProgressDialog.

- -
-package com.example.progressdialog;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.app.ProgressDialog;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-
-public class NotificationTest extends Activity {
-    static final int PROGRESS_DIALOG = 0;
-    Button button;
-    ProgressThread progressThread;
-    ProgressDialog progressDialog;
-   
-    /** Called when the activity is first created. */
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.main);
-
-        // Setup the button that starts the progress dialog
-        button = (Button) findViewById(R.id.progressDialog);
-        button.setOnClickListener(new OnClickListener(){
-            public void onClick(View v) {
-                showDialog(PROGRESS_DIALOG);
-            }
-        }); 
-    }
-   
-    protected Dialog onCreateDialog(int id) {
-        switch(id) {
-        case PROGRESS_DIALOG:
-            progressDialog = new ProgressDialog(NotificationTest.this);
-            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-            progressDialog.setMessage("Loading...");
-            return progressDialog;
-        default:
-            return null;
-        }
-    }
-
-    @Override
-    protected void onPrepareDialog(int id, Dialog dialog) {
-        switch(id) {
-        case PROGRESS_DIALOG:
-            progressDialog.setProgress(0);
-            progressThread = new ProgressThread(handler);
-            progressThread.start();
-    }
-
-    // Define the Handler that receives messages from the thread and update the progress
-    final Handler handler = new Handler() {
-        public void handleMessage(Message msg) {
-            int total = msg.arg1;
-            progressDialog.setProgress(total);
-            if (total >= 100){
-                dismissDialog(PROGRESS_DIALOG);
-                progressThread.setState(ProgressThread.STATE_DONE);
-            }
-        }
-    };
-
-    /** Nested class that performs progress calculations (counting) */
-    private class ProgressThread extends Thread {
-        Handler mHandler;
-        final static int STATE_DONE = 0;
-        final static int STATE_RUNNING = 1;
-        int mState;
-        int total;
-       
-        ProgressThread(Handler h) {
-            mHandler = h;
-        }
-       
-        public void run() {
-            mState = STATE_RUNNING;   
-            total = 0;
-            while (mState == STATE_RUNNING) {
-                try {
-                    Thread.sleep(100);
-                } catch (InterruptedException e) {
-                    Log.e("ERROR", "Thread Interrupted");
-                }
-                Message msg = mHandler.obtainMessage();
-                msg.arg1 = total;
-                mHandler.sendMessage(msg);
-                total++;
-            }
-        }
-        
-        /* sets the current state for the thread,
-         * used to stop the thread */
-        public void setState(int state) {
-            mState = state;
-        }
-    }
-}
-
-
-
- - - -

Creating a Custom Dialog

- - - -

If you want a customized design for a dialog, you can create your own layout -for the dialog window with layout and widget elements. -After you've defined your layout, pass the root View object or -layout resource ID to {@link android.app.Dialog#setContentView(View)}.

- -

For example, to create the dialog shown to the right:

- -
    -
  1. Create an XML layout saved as custom_dialog.xml: -
    -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    -              android:id="@+id/layout_root"
    -              android:orientation="horizontal"
    -              android:layout_width="fill_parent"
    -              android:layout_height="fill_parent"
    -              android:padding="10dp"
    -              >
    -    <ImageView android:id="@+id/image"
    -               android:layout_width="wrap_content"
    -               android:layout_height="fill_parent"
    -               android:layout_marginRight="10dp"
    -               />
    -    <TextView android:id="@+id/text"
    -              android:layout_width="wrap_content"
    -              android:layout_height="fill_parent"
    -              android:textColor="#FFF"
    -              />
    -</LinearLayout>
    -
    - -

    This XML defines an {@link android.widget.ImageView} and a {@link android.widget.TextView} - inside a {@link android.widget.LinearLayout}.

    -
  2. Set the above layout as the dialog's content view and define the content - for the ImageView and TextView elements:

    -
    -Context mContext = getApplicationContext();
    -Dialog dialog = new Dialog(mContext);
    -
    -dialog.setContentView(R.layout.custom_dialog);
    -dialog.setTitle("Custom Dialog");
    -
    -TextView text = (TextView) dialog.findViewById(R.id.text);
    -text.setText("Hello, this is a custom dialog!");
    -ImageView image = (ImageView) dialog.findViewById(R.id.image);
    -image.setImageResource(R.drawable.android);
    -
    - -

    After you instantiate the Dialog, set your custom layout as the dialog's content view with - {@link android.app.Dialog#setContentView(int)}, passing it the layout resource ID. - Now that the Dialog has a defined layout, you can capture View objects from the layout with - {@link android.app.Dialog#findViewById(int)} and modify their content.

    -
  3. - -
  4. That's it. You can now show the dialog as described in - Showing A Dialog.
  5. -
- -

A dialog made with the base Dialog class must have a title. If you don't call -{@link android.app.Dialog#setTitle(CharSequence) setTitle()}, then the space used for the title -remains empty, but still visible. If you don't want -a title at all, then you should create your custom dialog using the -{@link android.app.AlertDialog} class. However, because an AlertDialog is created easiest with -the {@link android.app.AlertDialog.Builder} class, you do not have access to the -{@link android.app.Dialog#setContentView(int)} method used above. Instead, you must use -{@link android.app.AlertDialog.Builder#setView(View)}. This method accepts a {@link android.view.View} object, -so you need to inflate the layout's root View object from -XML.

- -

To inflate the XML layout, retrieve the {@link android.view.LayoutInflater} with -{@link android.app.Activity#getLayoutInflater()} -(or {@link android.content.Context#getSystemService(String) getSystemService()}), -and then call -{@link android.view.LayoutInflater#inflate(int, ViewGroup)}, where the first parameter -is the layout resource ID and the second is the ID of the root View. At this point, you can use -the inflated layout to find View objects in the layout and define the content for the -ImageView and TextView elements. Then instantiate the AlertDialog.Builder and set the -inflated layout for the dialog with {@link android.app.AlertDialog.Builder#setView(View)}.

- -

Here's an example, creating a custom layout in an AlertDialog:

- -
-AlertDialog.Builder builder;
-AlertDialog alertDialog;
-
-Context mContext = getApplicationContext();
-LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
-View layout = inflater.inflate(R.layout.custom_dialog,
-                               (ViewGroup) findViewById(R.id.layout_root));
-
-TextView text = (TextView) layout.findViewById(R.id.text);
-text.setText("Hello, this is a custom dialog!");
-ImageView image = (ImageView) layout.findViewById(R.id.image);
-image.setImageResource(R.drawable.android);
-
-builder = new AlertDialog.Builder(mContext);
-builder.setView(layout);
-alertDialog = builder.create();
-
- -

Using an AlertDialog for your custom layout lets you -take advantage of built-in AlertDialog features like managed buttons, -selectable lists, a title, an icon and so on.

- -

For more information, refer to the reference documentation for the -{@link android.app.Dialog} and {@link android.app.AlertDialog.Builder} -classes.

- +

When the user touches any of the action buttons created with an +{@link android.app.AlertDialog.Builder}, the system dismisses the dialog for you.

+ +

The system also dismisses the dialog when the user touches an item in a dialog list, except +when the list uses radio buttons or checkboxes. Otherwise, you can manually dismiss your dialog +by calling {@link android.support.v4.app.DialogFragment#dismiss()} on your {@link +android.support.v4.app.DialogFragment}.

+ +

In case you need to perform certain +actions when the dialog goes away, you can implement the {@link +android.support.v4.app.DialogFragment#onDismiss onDismiss()} method in your {@link +android.support.v4.app.DialogFragment}.

+ +

You can also cancel a dialog. This is a special event that indicates the user +explicitly left the dialog without completing the task. This occurs if the user presses the +Back button, touches the screen outside the dialog area, +or if you explicitly call {@link android.app.Dialog#cancel()} on the {@link +android.app.Dialog} (such as in response to a "Cancel" button in the dialog).

+ +

As shown in the example above, you can respond to the cancel event by implementing +{@link android.support.v4.app.DialogFragment#onCancel onCancel()} in your {@link +android.support.v4.app.DialogFragment} class.

+ +

Note: The system calls +{@link android.support.v4.app.DialogFragment#onDismiss onDismiss()} upon each event that +invokes the {@link android.support.v4.app.DialogFragment#onCancel onCancel()} callback. However, +if you call {@link android.app.Dialog#dismiss Dialog.dismiss()} or {@link +android.support.v4.app.DialogFragment#dismiss DialogFragment.dismiss()}, +the system calls {@link android.support.v4.app.DialogFragment#onDismiss onDismiss()} but +not {@link android.support.v4.app.DialogFragment#onCancel onCancel()}. So you should generally +call {@link android.support.v4.app.DialogFragment#dismiss dismiss()} when the user presses the +positive button in your dialog in order to remove the dialog from view.

diff --git a/docs/html/images/dialog_buttons.png b/docs/html/images/dialog_buttons.png deleted file mode 100755 index 81aaec4a6ce5a1be77f29a10d09eacea938b1fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3701 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 TLC4V$00000NkvXXu0mjf$tp_F diff --git a/docs/html/images/dialog_custom.png b/docs/html/images/dialog_custom.png deleted file mode 100755 index b2523fd5c8922c5a4562adc7e6ebf05a6acda21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4018 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 Y02UjTkRUU2&j0`b07*qoM6N<$f@#0=`Tzg` diff --git a/docs/html/images/dialog_list.png b/docs/html/images/dialog_list.png deleted file mode 100755 index f2736bf4218dfdb39b5edbe7bf8d0ac068b182a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3830 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 diff --git a/docs/html/images/dialog_progress_bar.png b/docs/html/images/dialog_progress_bar.png deleted file mode 100755 index 3e74419f8976b5aedcbde75b5d17d264e8ec1fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2562 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 diff --git a/docs/html/images/ui/dialog_buttons.png b/docs/html/images/ui/dialog_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..ed952a1afc82e71faacc029d8c42f725cc26c22f GIT binary patch literal 8454 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%0D3**e*&?vQ=(H5Mwd^6+qDYKB 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/ui/dialog_custom.png b/docs/html/images/ui/dialog_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..244473bd18b66a7ad3743f4c04257329507a8950 GIT binary patch literal 21804 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 Bs*eBw literal 0 HcmV?d00001 diff --git a/docs/html/images/ui/dialogs.png b/docs/html/images/ui/dialogs.png new file mode 100644 index 0000000000000000000000000000000000000000..d45b0b56922c7cf1ea17b2a8333809606af1d817 GIT binary patch literal 36234 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 literal 0 HcmV?d00001