Dialog

public class Dialog
extends Object implements DialogInterface, Window.Callback, KeyEvent.Callback, View.OnCreateContextMenuListener

java.lang.Object
   ↳ android.app.Dialog


Base class for Dialogs.

Note: Activities provide a facility to manage the creation, saving and restoring of dialogs. See Activity#onCreateDialog(int), Activity#onPrepareDialog(int, Dialog), Activity#showDialog(int), and Activity#dismissDialog(int). If these methods are used, getOwnerActivity() will return the Activity that managed this dialog.

Often you will want to have a Dialog display on top of the current input method, because there is no reason for it to accept text. You can do this by setting the WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM window flag (assuming your Dialog takes input focus, as it the default) with the following code:

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
         WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

Developer Guides

For more information about creating dialogs, read the Dialogs developer guide.

Summary

Inherited constants

Public constructors

Dialog(Context context)

Creates a dialog window that uses the default dialog theme.

Dialog(Context context, int themeResId)

Creates a dialog window that uses a custom dialog style.

Protected constructors

Dialog(Context context, boolean cancelable, DialogInterface.OnCancelListener cancelListener)

Public methods

void addContentView(View view, ViewGroup.LayoutParams params)

Add an additional content view to the screen.

void cancel()

Cancel the dialog.

void closeOptionsMenu()
void create()

Forces immediate creation of the dialog.

void dismiss()

Dismiss this dialog, removing it from the screen.

boolean dispatchGenericMotionEvent(MotionEvent ev)

Called to process generic motion events.

boolean dispatchKeyEvent(KeyEvent event)

Called to process key events.

boolean dispatchKeyShortcutEvent(KeyEvent event)

Called to process a key shortcut event.

boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event)

Called to process population of AccessibilityEvents.

boolean dispatchTouchEvent(MotionEvent ev)

Called to process touch screen events.

boolean dispatchTrackballEvent(MotionEvent ev)

Called to process trackball events.

<T extends View> T findViewById(int id)

Finds the first descendant view with the given ID or null if the ID is invalid (< 0), there is no matching view in the hierarchy, or the dialog has not yet been fully created (for example, via show() or create()).

ActionBar getActionBar()

Retrieve the ActionBar attached to this dialog, if present.

final Context getContext()

Retrieve the Context this Dialog is running in.

View getCurrentFocus()

Call Window.getCurrentFocus() on the Window if this Activity to return the currently focused view.

LayoutInflater getLayoutInflater()
OnBackInvokedDispatcher getOnBackInvokedDispatcher()

Returns the OnBackInvokedDispatcher instance associated with the window that this dialog is attached to.

final Activity getOwnerActivity()

Returns the Activity that owns this Dialog.

final SearchEvent getSearchEvent()

During the onSearchRequested() callbacks, this function will return the SearchEvent that triggered the callback, if it exists.

final int getVolumeControlStream()
Window getWindow()

Retrieve the current Window for the activity.

void hide()

Hide the dialog, but do not dismiss it.

void invalidateOptionsMenu()
boolean isShowing()
void onActionModeFinished(ActionMode mode)

Called when an action mode has been finished. Note that if you override this method you should always call through to the superclass implementation by calling super.onActionModeFinished(mode).

void onActionModeStarted(ActionMode mode)

Called when an action mode has been started. Note that if you override this method you should always call through to the superclass implementation by calling super.onActionModeStarted(mode).

void onAttachedToWindow()

Called when the window has been attached to the window manager.

void onBackPressed()

This method was deprecated in API level 33. Use OnBackInvokedCallback or androidx.activity.OnBackPressedCallback to handle back navigation instead.

Starting from Android 13 (API level 33), back event handling is moving to an ahead-of-time model and onBackPressed() and KeyEvent#KEYCODE_BACK should not be used to handle back events (back gesture or back button click). Instead, an OnBackInvokedCallback should be registered using Dialog#getOnBackInvokedDispatcher() .registerOnBackInvokedCallback(priority, callback).

void onContentChanged()

This hook is called whenever the content view of the screen changes (due to a call to Window.setContentView or Window.addContentView).

boolean onContextItemSelected(MenuItem item)
void onContextMenuClosed(Menu menu)
void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)

Called when the context menu for this view is being built.

boolean onCreateOptionsMenu(Menu menu)

It is usually safe to proxy this call to the owner activity's Activity#onCreateOptionsMenu(Menu) if the client desires the same menu for this Dialog.

boolean onCreatePanelMenu(int featureId, Menu menu)

Initialize the contents of the menu for panel 'featureId'.

View onCreatePanelView(int featureId)

Instantiate the view to display in the panel for 'featureId'.

void onDetachedFromWindow()

Called when the window has been detached from the window manager.

boolean onGenericMotionEvent(MotionEvent event)

Called when a generic motion event was not handled by any of the views inside of the dialog.

boolean onKeyDown(int keyCode, KeyEvent event)

A key was pressed down.

boolean onKeyLongPress(int keyCode, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).

boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).

boolean onKeyShortcut(int keyCode, KeyEvent event)

Called when a key shortcut event is not handled by any of the views in the Dialog.

boolean onKeyUp(int keyCode, KeyEvent event)

A key was released.

boolean onMenuItemSelected(int featureId, MenuItem item)

Called when a panel's menu item has been selected by the user.

boolean onMenuOpened(int featureId, Menu menu)

Called when a panel's menu is opened by the user.

boolean onOptionsItemSelected(MenuItem item)
void onOptionsMenuClosed(Menu menu)
void onPanelClosed(int featureId, Menu menu)

Called when a panel is being closed.

boolean onPrepareOptionsMenu(Menu menu)

It is usually safe to proxy this call to the owner activity's Activity#onPrepareOptionsMenu(Menu) if the client desires the same menu for this Dialog.

boolean onPreparePanel(int featureId, View view, Menu menu)

Prepare a panel to be displayed.

void onRestoreInstanceState(Bundle savedInstanceState)

Restore the state of the dialog from a previously saved bundle.

Bundle onSaveInstanceState()

Saves the state of the dialog into a bundle.

boolean onSearchRequested(SearchEvent searchEvent)

This hook is called when the user signals the desire to start a search.

boolean onSearchRequested()

This hook is called when the user signals the desire to start a search.

boolean onTouchEvent(MotionEvent event)

Called when a touch screen event was not handled by any of the views under it.

boolean onTrackballEvent(MotionEvent event)

Called when the trackball was moved and not handled by any of the views inside of the activity.

void onWindowAttributesChanged(WindowManager.LayoutParams params)

This is called whenever the current window attributes change.

void onWindowFocusChanged(boolean hasFocus)

This hook is called whenever the window focus changes.

ActionMode onWindowStartingActionMode(ActionMode.Callback callback)

Called when an action mode is being started for this window.

ActionMode onWindowStartingActionMode(ActionMode.Callback callback, int type)

Called when an action mode is being started for this window.

void openContextMenu(View view)
void openOptionsMenu()
void registerForContextMenu(View view)
final boolean requestWindowFeature(int featureId)

Enable extended window features.

final <T extends View> T requireViewById(int id)

Finds the first descendant view with the given ID or throws an IllegalArgumentException if the ID is invalid (< 0), there is no matching view in the hierarchy, or the dialog has not yet been fully created (for example, via show() or create()).

void setCancelMessage(Message msg)

Set a message to be sent when the dialog is canceled.

void setCancelable(boolean flag)

Sets whether this dialog is cancelable with the BACK key.

void setCanceledOnTouchOutside(boolean cancel)

Sets whether this dialog is canceled when touched outside the window's bounds.

void setContentView(int layoutResID)

Set the screen content from a layout resource.

void setContentView(View view, ViewGroup.LayoutParams params)

Set the screen content to an explicit view.

void setContentView(View view)

Set the screen content to an explicit view.

void setDismissMessage(Message msg)

Set a message to be sent when the dialog is dismissed.

final void setFeatureDrawable(int featureId, Drawable drawable)

Convenience for calling Window.setFeatureDrawable(int, Drawable).

final void setFeatureDrawableAlpha(int featureId, int alpha)

Convenience for calling Window.setFeatureDrawableAlpha(int, int).

final void setFeatureDrawableResource(int featureId, int resId)

Convenience for calling Window.setFeatureDrawableResource(int, int).

final void setFeatureDrawableUri(int featureId, Uri uri)

Convenience for calling Window.setFeatureDrawableUri(int, Uri).

void setOnCancelListener(DialogInterface.OnCancelListener listener)

Set a listener to be invoked when the dialog is canceled.

void setOnDismissListener(DialogInterface.OnDismissListener listener)

Set a listener to be invoked when the dialog is dismissed.

void setOnKeyListener(DialogInterface.OnKeyListener onKeyListener)

Sets the callback that will be called if a key is dispatched to the dialog.

void setOnShowListener(DialogInterface.OnShowListener listener)

Sets a listener to be invoked when the dialog is shown.

final void setOwnerActivity(Activity activity)

Sets the Activity that owns this dialog.

void setTitle(CharSequence title)

Set the title text for this dialog's window.

void setTitle(int titleId)

Set the title text for this dialog's window.

final void setVolumeControlStream(int streamType)

By default, this will use the owner Activity's suggested stream type.

void show()

Start the dialog and display it on screen.

void takeKeyEvents(boolean get)

Request that key events come to this dialog.

void unregisterForContextMenu(View view)

Protected methods

void onCreate(Bundle savedInstanceState)

Similar to Activity#onCreate, you should initialize your dialog in this method, including calling setContentView(View).

void onStart()

Called when the dialog is starting.

void onStop()

Called to tell you that you're stopping.

Inherited methods

Public constructors

Dialog

Added in API level 1
public Dialog (Context context)

Creates a dialog window that uses the default dialog theme.

The supplied context is used to obtain the window manager and base theme used to present the dialog.

Parameters
context Context: the context in which the dialog should run This value cannot be null.

Dialog

Added in API level 1
public Dialog (Context context, 
                int themeResId)

Creates a dialog window that uses a custom dialog style.

The supplied context is used to obtain the window manager and base theme used to present the dialog.

The supplied theme is applied on top of the context's theme. See Style and Theme Resources for more information about defining and using styles.

Parameters
context Context: the context in which the dialog should run This value cannot be null.

themeResId int: a style resource describing the theme to use for the window, or 0 to use the default dialog theme

Protected constructors

Dialog

Added in API level 1
protected Dialog (Context context, 
                boolean cancelable, 
                DialogInterface.OnCancelListener cancelListener)

Parameters
context Context: This value cannot be null.

cancelable boolean

cancelListener DialogInterface.OnCancelListener: This value may be null.

Public methods

addContentView

Added in API level 1
public void addContentView (View view, 
                ViewGroup.LayoutParams params)

Add an additional content view to the screen. Added after any existing ones in the screen -- existing views are NOT removed.

Parameters
view View: The desired content to display. This value cannot be null.

params ViewGroup.LayoutParams: Layout parameters for the view. This value may be null.

cancel

Added in API level 1
public void cancel ()

Cancel the dialog. This is essentially the same as calling dismiss(), but it will also call your DialogInterface.OnCancelListener (if registered).

closeOptionsMenu

Added in API level 1
public void closeOptionsMenu ()

create

Added in API level 21
public void create ()

Forces immediate creation of the dialog.

Note that you should not override this method to perform dialog creation. Rather, override onCreate(android.os.Bundle).

dismiss

Added in API level 1
public void dismiss ()

Dismiss this dialog, removing it from the screen. This method can be invoked safely from any thread. Note that you should not override this method to do cleanup when the dialog is dismissed, instead implement that in onStop().

dispatchGenericMotionEvent

Added in API level 12
public boolean dispatchGenericMotionEvent (MotionEvent ev)

Called to process generic motion events. You can override this to intercept all generic motion events before they are dispatched to the window. Be sure to call this implementation for generic motion events that should be handled normally.

Parameters
ev MotionEvent: The generic motion event. This value cannot be null.

Returns
boolean boolean Return true if this event was consumed.

dispatchKeyEvent

Added in API level 1
public boolean dispatchKeyEvent (KeyEvent event)

Called to process key events. You can override this to intercept all key events before they are dispatched to the window. Be sure to call this implementation for key events that should be handled normally.

Parameters
event KeyEvent: The key event. This value cannot be null.

Returns
boolean boolean Return true if this event was consumed.

dispatchKeyShortcutEvent

Added in API level 11
public boolean dispatchKeyShortcutEvent (KeyEvent event)

Called to process a key shortcut event. You can override this to intercept all key shortcut events before they are dispatched to the window. Be sure to call this implementation for key shortcut events that should be handled normally.

Parameters
event KeyEvent: The key shortcut event. This value cannot be null.

Returns
boolean True if this event was consumed.

dispatchPopulateAccessibilityEvent

Added in API level 4
public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)

Called to process population of AccessibilityEvents.

Parameters
event AccessibilityEvent: This value cannot be null.

Returns
boolean boolean Return true if event population was completed.

dispatchTouchEvent

Added in API level 1
public boolean dispatchTouchEvent (MotionEvent ev)

Called to process touch screen events. You can override this to intercept all touch screen events before they are dispatched to the window. Be sure to call this implementation for touch screen events that should be handled normally.

Parameters
ev MotionEvent: The touch screen event. This value cannot be null.

Returns
boolean boolean Return true if this event was consumed.

dispatchTrackballEvent

Added in API level 1
public boolean dispatchTrackballEvent (MotionEvent ev)

Called to process trackball events. You can override this to intercept all trackball events before they are dispatched to the window. Be sure to call this implementation for trackball events that should be handled normally.

Parameters
ev MotionEvent: The trackball event. This value cannot be null.

Returns
boolean boolean Return true if this event was consumed.

findViewById

Added in API level 1
public T findViewById (int id)

Finds the first descendant view with the given ID or null if the ID is invalid (< 0), there is no matching view in the hierarchy, or the dialog has not yet been fully created (for example, via show() or create()).

Note: In most cases -- depending on compiler support -- the resulting view is automatically cast to the target class type. If the target class type is unconstrained, an explicit cast may be necessary.

Parameters
id int: the ID to search for

Returns
T a view with given ID if found, or null otherwise

getActionBar

Added in API level 11
public ActionBar getActionBar ()

Retrieve the ActionBar attached to this dialog, if present.

Returns
ActionBar The ActionBar attached to the dialog or null if no ActionBar is present.

getContext

Added in API level 1
public final Context getContext ()

Retrieve the Context this Dialog is running in.

Returns
Context Context The Context used by the Dialog. This value cannot be null.

getCurrentFocus

Added in API level 1
public View getCurrentFocus ()

Call Window.getCurrentFocus() on the Window if this Activity to return the currently focused view.

Returns
View View The current View with focus or null.

getLayoutInflater

Added in API level 1
public LayoutInflater getLayoutInflater ()

Returns
LayoutInflater This value cannot be null.

getOnBackInvokedDispatcher

Added in API level 33
public OnBackInvokedDispatcher getOnBackInvokedDispatcher ()

Returns the OnBackInvokedDispatcher instance associated with the window that this dialog is attached to.

Returns
OnBackInvokedDispatcher This value cannot be null.

getOwnerActivity

Added in API level 1
public final Activity getOwnerActivity ()

Returns the Activity that owns this Dialog. For example, if Activity#showDialog(int) is used to show this Dialog, that Activity will be the owner (by default). Depending on how this dialog was created, this may return null.

Returns
Activity The Activity that owns this Dialog.

getSearchEvent

Added in API level 23
public final SearchEvent getSearchEvent ()

During the onSearchRequested() callbacks, this function will return the SearchEvent that triggered the callback, if it exists.

Returns
SearchEvent SearchEvent The SearchEvent that triggered the onSearchRequested() callback. This value may be null.

getVolumeControlStream

Added in API level 1
public final int getVolumeControlStream ()

Returns
int

getWindow

Added in API level 1
public Window getWindow ()

Retrieve the current Window for the activity. This can be used to directly access parts of the Window API that are not available through Activity/Screen.

Returns
Window Window The current window, or null if the activity is not visual.

hide

Added in API level 1
public void hide ()

Hide the dialog, but do not dismiss it.

invalidateOptionsMenu

Added in API level 11
public void invalidateOptionsMenu ()

isShowing

Added in API level 1
public boolean isShowing ()

Returns
boolean Whether the dialog is currently showing.

onActionModeFinished

Added in API level 11
public void onActionModeFinished (ActionMode mode)

Called when an action mode has been finished. The appropriate mode callback method will have already been invoked. Note that if you override this method you should always call through to the superclass implementation by calling super.onActionModeFinished(mode).
If you override this method you must call through to the superclass implementation.

Parameters
mode ActionMode: The mode that was just finished.

onActionModeStarted

Added in API level 11
public void onActionModeStarted (ActionMode mode)

Called when an action mode has been started. The appropriate mode callback method will have already been invoked. Note that if you override this method you should always call through to the superclass implementation by calling super.onActionModeStarted(mode).
If you override this method you must call through to the superclass implementation.

Parameters
mode ActionMode: The new mode that has just been started.

onAttachedToWindow

Added in API level 5
public void onAttachedToWindow ()

Called when the window has been attached to the window manager. See View.onAttachedToWindow() for more information.

onBackPressed

Added in API level 5
Deprecated in API level 33
public void onBackPressed ()

This method was deprecated in API level 33.
Use OnBackInvokedCallback or androidx.activity.OnBackPressedCallback to handle back navigation instead.

Starting from Android 13 (API level 33), back event handling is moving to an ahead-of-time model and onBackPressed() and KeyEvent#KEYCODE_BACK should not be used to handle back events (back gesture or back button click). Instead, an OnBackInvokedCallback should be registered using Dialog#getOnBackInvokedDispatcher() .registerOnBackInvokedCallback(priority, callback).

Called when the dialog has detected the user's press of the back key. The default implementation simply cancels the dialog (only if it is cancelable), but you can override this to do whatever you want.

If you target version Build.VERSION_CODES.TIRAMISU or later, you should not use this method but register an OnBackInvokedCallback on an OnBackInvokedDispatcher that you can retrieve using getOnBackInvokedDispatcher(). You should also set android:enableOnBackInvokedCallback="true" in the application manifest.

Alternatively, you can use androidx.activity.ComponentDialog#getOnBackPressedDispatcher() for backward compatibility.

onContentChanged

Added in API level 1
public void onContentChanged ()

This hook is called whenever the content view of the screen changes (due to a call to Window.setContentView or Window.addContentView).

onContextItemSelected

Added in API level 1
public boolean onContextItemSelected (MenuItem item)

Parameters
item MenuItem: This value cannot be null.

Returns
boolean

onContextMenuClosed

Added in API level 1
public void onContextMenuClosed (Menu menu)

Parameters
menu Menu: This value cannot be null.

onCreateContextMenu

Added in API level 1
public void onCreateContextMenu (ContextMenu menu, 
                View v, 
                ContextMenu.ContextMenuInfo menuInfo)

Called when the context menu for this view is being built. It is not safe to hold onto the menu after this method returns.

Parameters
menu ContextMenu: The context menu that is being built

v View: The view for which the context menu is being built

menuInfo ContextMenu.ContextMenuInfo: Extra information about the item for which the context menu should be shown. This information will vary depending on the class of v.

onCreateOptionsMenu

Added in API level 1
public boolean onCreateOptionsMenu (Menu menu)

It is usually safe to proxy this call to the owner activity's Activity#onCreateOptionsMenu(Menu) if the client desires the same menu for this Dialog.

Parameters
menu Menu: This value cannot be null.

Returns
boolean

onCreatePanelMenu

Added in API level 1
public boolean onCreatePanelMenu (int featureId, 
                Menu menu)

Initialize the contents of the menu for panel 'featureId'. This is called if onCreatePanelView() returns null, giving you a standard menu in which you can place your items. It is only called once for the panel, the first time it is shown.

You can safely hold on to menu (and any items created from it), making modifications to it as desired, until the next time onCreatePanelMenu() is called for this feature.

Parameters
featureId int: The panel being created.

menu Menu: This value cannot be null.

Returns
boolean boolean You must return true for the panel to be displayed; if you return false it will not be shown.

onCreatePanelView

Added in API level 1
public View onCreatePanelView (int featureId)

Instantiate the view to display in the panel for 'featureId'. You can return null, in which case the default content (typically a menu) will be created for you.

Parameters
featureId int: Which panel is being created.

Returns
View view The top-level view to place in the panel.

onDetachedFromWindow

Added in API level 5
public void onDetachedFromWindow ()

Called when the window has been detached from the window manager. See View.onDetachedFromWindow() for more information.

onGenericMotionEvent

Added in API level 12
public boolean onGenericMotionEvent (MotionEvent event)

Called when a generic motion event was not handled by any of the views inside of the dialog.

Generic motion events describe joystick movements, mouse hovers, track pad touches, scroll wheel movements and other input events. The source of the motion event specifies the class of input that was received. Implementations of this method must examine the bits in the source before processing the event. The following code example shows how this is done.

Generic motion events with source class InputDevice.SOURCE_CLASS_POINTER are delivered to the view under the pointer. All other generic motion events are delivered to the focused view.

See View#onGenericMotionEvent(MotionEvent) for an example of how to handle this event.

Parameters
event MotionEvent: The generic motion event being processed. This value cannot be null.

Returns
boolean Return true if you have consumed the event, false if you haven't. The default implementation always returns false.

onKeyDown

Added in API level 1
public boolean onKeyDown (int keyCode, 
                KeyEvent event)

A key was pressed down.

If the focused view didn't want this event, this method is called.

Default implementation consumes KEYCODE_BACK and, as of P, KEYCODE_ESCAPE to later handle them in onKeyUp(int, KeyEvent).

Parameters
keyCode int: The value in event.getKeyCode().

event KeyEvent: This value cannot be null.

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyLongPress

Added in API level 5
public boolean onKeyLongPress (int keyCode, 
                KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).

Parameters
keyCode int: The value in event.getKeyCode().

event KeyEvent: This value cannot be null.

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyMultiple

Added in API level 1
public boolean onKeyMultiple (int keyCode, 
                int repeatCount, 
                KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).

Parameters
keyCode int: The value in event.getKeyCode().

repeatCount int: Number of pairs as returned by event.getRepeatCount().

event KeyEvent: This value cannot be null.

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyShortcut

Added in API level 11
public boolean onKeyShortcut (int keyCode, 
                KeyEvent event)

Called when a key shortcut event is not handled by any of the views in the Dialog. Override this method to implement global key shortcuts for the Dialog. Key shortcuts can also be implemented by setting the shortcut property of menu items.

Parameters
keyCode int: The value in event.getKeyCode().

event KeyEvent: Description of the key event. This value cannot be null.

Returns
boolean True if the key shortcut was handled.

onKeyUp

Added in API level 1
public boolean onKeyUp (int keyCode, 
                KeyEvent event)

A key was released.

Default implementation consumes KEYCODE_BACK and, as of P, KEYCODE_ESCAPE to close the dialog.

Parameters
keyCode int: The value in event.getKeyCode().

event KeyEvent: This value cannot be null.

Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onMenuItemSelected

Added in API level 1
public boolean onMenuItemSelected (int featureId, 
                MenuItem item)

Called when a panel's menu item has been selected by the user.

Parameters
featureId int: The panel that the menu is in.

item MenuItem: This value cannot be null.

Returns
boolean boolean Return true to finish processing of selection, or false to perform the normal menu handling (calling its Runnable or sending a Message to its target Handler).

onMenuOpened

Added in API level 1
public boolean onMenuOpened (int featureId, 
                Menu menu)

Called when a panel's menu is opened by the user. This may also be called when the menu is changing from one type to another (for example, from the icon menu to the expanded menu).

Parameters
featureId int: The panel that the menu is in.

menu Menu: This value cannot be null.

Returns
boolean Return true to allow the menu to open, or false to prevent the menu from opening.

onOptionsItemSelected

Added in API level 1
public boolean onOptionsItemSelected (MenuItem item)

Parameters
item MenuItem: This value cannot be null.

Returns
boolean

onOptionsMenuClosed

Added in API level 1
public void onOptionsMenuClosed (Menu menu)

Parameters
menu Menu: This value cannot be null.

onPanelClosed

Added in API level 1
public void onPanelClosed (int featureId, 
                Menu menu)

Called when a panel is being closed. If another logical subsequent panel is being opened (and this panel is being closed to make room for the subsequent panel), this method will NOT be called.

Parameters
featureId int: The panel that is being displayed.

menu Menu: This value cannot be null.

onPrepareOptionsMenu

Added in API level 1
public boolean onPrepareOptionsMenu (Menu menu)

It is usually safe to proxy this call to the owner activity's Activity#onPrepareOptionsMenu(Menu) if the client desires the same menu for this Dialog.

Parameters
menu Menu: This value cannot be null.

Returns
boolean

onPreparePanel

Added in API level 1
public boolean onPreparePanel (int featureId, 
                View view, 
                Menu menu)

Prepare a panel to be displayed. This is called right before the panel window is shown, every time it is shown.

Parameters
featureId int: The panel that is being displayed.

view View: This value may be null.

menu Menu: This value cannot be null.

Returns
boolean boolean You must return true for the panel to be displayed; if you return false it will not be shown.

onRestoreInstanceState

Added in API level 1
public void onRestoreInstanceState (Bundle savedInstanceState)

Restore the state of the dialog from a previously saved bundle. The default implementation restores the state of the dialog's view hierarchy that was saved in the default implementation of onSaveInstanceState(), so be sure to call through to super when overriding unless you want to do all restoring of state yourself.

Parameters
savedInstanceState Bundle: The state of the dialog previously saved by onSaveInstanceState(). This value cannot be null.

onSaveInstanceState

Added in API level 1
public Bundle onSaveInstanceState ()

Saves the state of the dialog into a bundle. The default implementation saves the state of its view hierarchy, so you'll likely want to call through to super if you override this to save additional state.

Returns
Bundle A bundle with the state of the dialog. This value cannot be null.

onSearchRequested

Added in API level 23
public boolean onSearchRequested (SearchEvent searchEvent)

This hook is called when the user signals the desire to start a search.

Parameters
searchEvent SearchEvent: This value cannot be null.

Returns
boolean true if search launched, false if activity refuses (blocks)

onSearchRequested

Added in API level 1
public boolean onSearchRequested ()

This hook is called when the user signals the desire to start a search.

Returns
boolean true if search launched, false if activity refuses (blocks)

onTouchEvent

Added in API level 1
public boolean onTouchEvent (MotionEvent event)

Called when a touch screen event was not handled by any of the views under it. This is most useful to process touch events that happen outside of your window bounds, where there is no view to receive it.

Parameters
event MotionEvent: The touch screen event being processed. This value cannot be null.

Returns
boolean Return true if you have consumed the event, false if you haven't. The default implementation will cancel the dialog when a touch happens outside of the window bounds.

onTrackballEvent

Added in API level 1
public boolean onTrackballEvent (MotionEvent event)

Called when the trackball was moved and not handled by any of the views inside of the activity. So, for example, if the trackball moves while focus is on a button, you will receive a call here because buttons do not normally do anything with trackball events. The call here happens before trackball movements are converted to DPAD key events, which then get sent back to the view hierarchy, and will be processed at the point for things like focus navigation.

Parameters
event MotionEvent: The trackball event being processed. This value cannot be null.

Returns
boolean Return true if you have consumed the event, false if you haven't. The default implementation always returns false.

onWindowAttributesChanged

Added in API level 1
public void onWindowAttributesChanged (WindowManager.LayoutParams params)

This is called whenever the current window attributes change.

Parameters
params WindowManager.LayoutParams

onWindowFocusChanged

Added in API level 1
public void onWindowFocusChanged (boolean hasFocus)

This hook is called whenever the window focus changes. See View.onWindowFocusChangedNotLocked(boolean) for more information.

Parameters
hasFocus boolean: Whether the window now has focus.

onWindowStartingActionMode

Added in API level 11
public ActionMode onWindowStartingActionMode (ActionMode.Callback callback)

Called when an action mode is being started for this window. Gives the callback an opportunity to handle the action mode in its own unique and beautiful way. If this method returns null the system can choose a way to present the mode or choose not to start the mode at all. This is equivalent to onWindowStartingActionMode(android.view.ActionMode.Callback, int) with type ActionMode#TYPE_PRIMARY.

Parameters
callback ActionMode.Callback: Callback to control the lifecycle of this action mode

Returns
ActionMode The ActionMode that was started, or null if the system should present it

onWindowStartingActionMode

Added in API level 23
public ActionMode onWindowStartingActionMode (ActionMode.Callback callback, 
                int type)

Called when an action mode is being started for this window. Gives the callback an opportunity to handle the action mode in its own unique and beautiful way. If this method returns null the system can choose a way to present the mode or choose not to start the mode at all.

Parameters
callback ActionMode.Callback: Callback to control the lifecycle of this action mode

type int: One of ActionMode#TYPE_PRIMARY or ActionMode#TYPE_FLOATING.

Returns
ActionMode The ActionMode that was started, or null if the system should present it

openContextMenu

Added in API level 1
public void openContextMenu (View view)

Parameters
view View: This value cannot be null.

openOptionsMenu

Added in API level 1
public void openOptionsMenu ()

registerForContextMenu

Added in API level 1
public void registerForContextMenu (View view)

Parameters
view View: This value cannot be null.

requestWindowFeature

Added in API level 1
public final boolean requestWindowFeature (int featureId)

Enable extended window features. This is a convenience for calling getWindow().requestFeature().

Parameters
featureId int: The desired feature as defined in Window.

Returns
boolean Returns true if the requested feature is supported and now enabled.

requireViewById

Added in API level 28
public final T requireViewById (int id)

Finds the first descendant view with the given ID or throws an IllegalArgumentException if the ID is invalid (< 0), there is no matching view in the hierarchy, or the dialog has not yet been fully created (for example, via show() or create()).

Note: In most cases -- depending on compiler support -- the resulting view is automatically cast to the target class type. If the target class type is unconstrained, an explicit cast may be necessary.

Parameters
id int: the ID to search for

Returns
T a view with given ID This value cannot be null.

setCancelMessage

Added in API level 1
public void setCancelMessage (Message msg)

Set a message to be sent when the dialog is canceled.

Parameters
msg Message: The msg to send when the dialog is canceled. This value may be null.

setCancelable

Added in API level 1
public void setCancelable (boolean flag)

Sets whether this dialog is cancelable with the BACK key.

Parameters
flag boolean

setCanceledOnTouchOutside

Added in API level 1
public void setCanceledOnTouchOutside (boolean cancel)

Sets whether this dialog is canceled when touched outside the window's bounds. If setting to true, the dialog is set to be cancelable if not already set.

Parameters
cancel boolean: Whether the dialog should be canceled when touched outside the window.

setContentView

Added in API level 1
public void setContentView (int layoutResID)

Set the screen content from a layout resource. The resource will be inflated, adding all top-level views to the screen.

Parameters
layoutResID int: Resource ID to be inflated.

setContentView

Added in API level 1
public void setContentView (View view, 
                ViewGroup.LayoutParams params)

Set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarchy.

Parameters
view View: The desired content to display. This value cannot be null.

params ViewGroup.LayoutParams: Layout parameters for the view. This value may be null.

setContentView

Added in API level 1
public void setContentView (View view)

Set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarchy.

Parameters
view View: The desired content to display. This value cannot be null.

setDismissMessage

Added in API level 1
public void setDismissMessage (Message msg)

Set a message to be sent when the dialog is dismissed.

Parameters
msg Message: The msg to send when the dialog is dismissed. This value may be null.

setFeatureDrawable

Added in API level 1
public final void setFeatureDrawable (int featureId, 
                Drawable drawable)

Convenience for calling Window.setFeatureDrawable(int, Drawable).

Parameters
featureId int

drawable Drawable: This value may be null.

setFeatureDrawableAlpha

Added in API level 1
public final void setFeatureDrawableAlpha (int featureId, 
                int alpha)

Convenience for calling Window.setFeatureDrawableAlpha(int, int).

Parameters
featureId int

alpha int

setFeatureDrawableResource

Added in API level 1
public final void setFeatureDrawableResource (int featureId, 
                int resId)

Convenience for calling Window.setFeatureDrawableResource(int, int).

Parameters
featureId int

resId int

setFeatureDrawableUri

Added in API level 1
public final void setFeatureDrawableUri (int featureId, 
                Uri uri)

Convenience for calling Window.setFeatureDrawableUri(int, Uri).

Parameters
featureId int

uri Uri: This value may be null.

setOnCancelListener

Added in API level 1
public void setOnCancelListener (DialogInterface.OnCancelListener listener)

Set a listener to be invoked when the dialog is canceled.

This will only be invoked when the dialog is canceled. Cancel events alone will not capture all ways that the dialog might be dismissed. If the creator needs to know when a dialog is dismissed in general, use setOnDismissListener(OnDismissListener).

Parameters
listener DialogInterface.OnCancelListener: The DialogInterface.OnCancelListener to use. This value may be null.

setOnDismissListener

Added in API level 1
public void setOnDismissListener (DialogInterface.OnDismissListener listener)

Set a listener to be invoked when the dialog is dismissed.

Parameters
listener DialogInterface.OnDismissListener: The DialogInterface.OnDismissListener to use. This value may be null.

setOnKeyListener

Added in API level 1
public void setOnKeyListener (DialogInterface.OnKeyListener onKeyListener)

Sets the callback that will be called if a key is dispatched to the dialog.

Parameters
onKeyListener DialogInterface.OnKeyListener: This value may be null.

setOnShowListener

Added in API level 8
public void setOnShowListener (DialogInterface.OnShowListener listener)

Sets a listener to be invoked when the dialog is shown.

Parameters
listener DialogInterface.OnShowListener: The DialogInterface.OnShowListener to use. This value may be null.

setOwnerActivity

Added in API level 1
public final void setOwnerActivity (Activity activity)

Sets the Activity that owns this dialog. An example use: This Dialog will use the suggested volume control stream of the Activity.

Parameters
activity Activity: The Activity that owns this dialog. This value cannot be null.

setTitle

Added in API level 1
public void setTitle (CharSequence title)

Set the title text for this dialog's window.

Parameters
title CharSequence: The new text to display in the title. This value may be null.

setTitle

Added in API level 1
public void setTitle (int titleId)

Set the title text for this dialog's window. The text is retrieved from the resources with the supplied identifier.

Parameters
titleId int: the title's text resource identifier

setVolumeControlStream

Added in API level 1
public final void setVolumeControlStream (int streamType)

By default, this will use the owner Activity's suggested stream type.

Parameters
streamType int

show

Added in API level 1
public void show ()

Start the dialog and display it on screen. The window is placed in the application layer and opaque. Note that you should not override this method to do initialization when the dialog is shown, instead implement that in onStart().

takeKeyEvents

Added in API level 1
public void takeKeyEvents (boolean get)

Request that key events come to this dialog. Use this if your dialog has no views with focus, but the dialog still wants a chance to process key events.

Parameters
get boolean: true if the dialog should receive key events, false otherwise

unregisterForContextMenu

Added in API level 1
public void unregisterForContextMenu (View view)

Parameters
view View: This value cannot be null.

Protected methods

onCreate

Added in API level 1
protected void onCreate (Bundle savedInstanceState)

Similar to Activity#onCreate, you should initialize your dialog in this method, including calling setContentView(View).

Parameters
savedInstanceState Bundle: If this dialog is being reinitialized after a the hosting activity was previously shut down, holds the result from the most recent call to onSaveInstanceState(), or null if this is the first time.

onStart

Added in API level 1
protected void onStart ()

Called when the dialog is starting.

onStop

Added in API level 1
protected void onStop ()

Called to tell you that you're stopping.