Class DynamicDialog.Builder

java.lang.Object
com.pranavpandey.android.dynamic.dialogs.DynamicDialog.Builder
Enclosing class:
DynamicDialog

public static class DynamicDialog.Builder extends Object
  • Constructor Details

    • Builder

      public Builder(@NonNull Context context, @Nullable DynamicDialog.Builder builder)
      Copy constructor to create a builder for another builder.

      It will use the supplied builder's theme id available otherwise the default alert dialog theme is defined by R.attr.alertDialogTheme within the parent context's theme.

      Parameters:
      context - the parent context
      builder - the builder to copy the parameters.
    • Builder

      public Builder(@NonNull Context context)
      Creates a builder for an alert dialog that uses the default alert dialog theme.

      The default alert dialog theme is defined by R.attr.alertDialogTheme within the parent context's theme.

      Parameters:
      context - the parent context
    • Builder

      public Builder(@NonNull Context context, @StyleRes int themeResId)
      Creates a builder for an alert dialog that uses an explicit theme resource.

      The specified theme resource (themeResId) is applied on top of the parent context's theme. It may be specified as a style resource containing a fully-populated theme, such as R.style.Theme_AppCompat_Dialog, to replace all attributes in the parent context's theme including primary and accent colors.

      To preserve attributes such as primary and accent colors, the themeResId may instead be specified as an overlay theme such as R.style.ThemeOverlay_AppCompat_Dialog. This will override only the window attributes necessary to style the alert window as a dialog.

      Alternatively, the themeResId may be specified as 0 to use the parent context's resolved value for R.attr.alertDialogTheme.

      Parameters:
      context - the parent context
      themeResId - the resource ID of the theme against which to inflate this dialog, or 0 to use the parent context's default alert dialog theme
  • Method Details

    • getContext

      @NonNull public Context getContext()
      Returns a Context with the appropriate theme for dialogs created by this Builder. Applications should use this Context for obtaining LayoutInflaters for inflating views that will be used in the resulting dialogs, as it will cause views to be inflated with the correct theme.
      Returns:
      A Context for built Dialogs.
    • setTitle

      public DynamicDialog.Builder setTitle(@StringRes int titleId)
      Set the title using the given resource id.
      Parameters:
      titleId - The resource id to display the title.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setTitle

      public DynamicDialog.Builder setTitle(@Nullable CharSequence title)
      Set the title displayed in the Dialog.
      Parameters:
      title - The title to be displayed.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setCustomTitle

      public DynamicDialog.Builder setCustomTitle(@Nullable View customTitleView)
      Set the title using the custom view customTitleView.

      The methods setTitle(int) and setIcon(int) should be sufficient for most titles, but this is provided if the title needs more customization. Using this will replace the title and icon set via the other methods.

      Note: To ensure consistent styling, the custom view should be inflated or constructed using the alert dialog's themed context obtained via getContext().

      Parameters:
      customTitleView - the custom view to use as the title.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setMessage

      public DynamicDialog.Builder setMessage(@StringRes int messageId)
      Set the message to display using the given resource id.
      Parameters:
      messageId - The resource id to display message.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setMessage

      public DynamicDialog.Builder setMessage(@Nullable CharSequence message)
      Set the message to display.
      Parameters:
      message - The message to display.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setIcon

      public DynamicDialog.Builder setIcon(@DrawableRes int iconId)
      Set the resource id of the Drawable to be used in the title.

      Takes precedence over values set using setIcon(Drawable).

      Parameters:
      iconId - The resource id to display the drawable.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setIcon

      public DynamicDialog.Builder setIcon(@Nullable Drawable icon)
      Set the Drawable to be used in the title.

      Note: To ensure consistent styling, the drawable should be inflated or constructed using the alert dialog's themed context obtained via getContext().

      Parameters:
      icon - The drawable to be used in the title.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setIconAttribute

      public DynamicDialog.Builder setIconAttribute(@AttrRes int attrId)
      Set an icon as supplied by a theme attribute. e.g. R.attr.alertDialogIcon.

      Takes precedence over values set using setIcon(int) or setIcon(Drawable).

      Parameters:
      attrId - ID of a theme attribute that points to a drawable resource.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setPositiveButton

      public DynamicDialog.Builder setPositiveButton(@StringRes int textId, @Nullable DialogInterface.OnClickListener listener)
      Set a listener to be invoked when the positive button of the dialog is pressed.
      Parameters:
      textId - The resource id of the text to display in the positive button.
      listener - The DialogInterface.OnClickListener to use.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setPositiveButton

      Set a listener to be invoked when the positive button of the dialog is pressed.
      Parameters:
      text - The text to display in the positive button.
      listener - The DialogInterface.OnClickListener to use.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setPositiveButtonIcon

      public DynamicDialog.Builder setPositiveButtonIcon(@Nullable Drawable icon)
      Set an icon to be displayed for the positive button.
      Parameters:
      icon - The icon to be displayed.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setNegativeButton

      public DynamicDialog.Builder setNegativeButton(@StringRes int textId, @Nullable DialogInterface.OnClickListener listener)
      Set a listener to be invoked when the negative button of the dialog is pressed.
      Parameters:
      textId - The resource id of the text to display in the negative button.
      listener - The DialogInterface.OnClickListener to use.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setNegativeButton

      Set a listener to be invoked when the negative button of the dialog is pressed.
      Parameters:
      text - The text to display in the negative button.
      listener - The DialogInterface.OnClickListener to use.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setNegativeButtonIcon

      public DynamicDialog.Builder setNegativeButtonIcon(@Nullable Drawable icon)
      Set an icon to be displayed for the negative button.
      Parameters:
      icon - The icon to be displayed.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setNeutralButton

      public DynamicDialog.Builder setNeutralButton(@StringRes int textId, @Nullable DialogInterface.OnClickListener listener)
      Set a listener to be invoked when the neutral button of the dialog is pressed.
      Parameters:
      textId - The resource id of the text to display in the neutral button.
      listener - The DialogInterface.OnClickListener to use.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setNeutralButton

      Set a listener to be invoked when the neutral button of the dialog is pressed.
      Parameters:
      text - The text to display in the neutral button.
      listener - The DialogInterface.OnClickListener to use.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setNeutralButtonIcon

      public DynamicDialog.Builder setNeutralButtonIcon(@Nullable Drawable icon)
      Set an icon to be displayed for the neutral button.
      Parameters:
      icon - The icon to be displayed.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setCancelable

      public DynamicDialog.Builder setCancelable(boolean cancelable)
      Sets whether the dialog is cancelable or not. Default is true.
      Parameters:
      cancelable - true to set the dialog cancelable.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setOnCancelListener

      public DynamicDialog.Builder setOnCancelListener(@Nullable DialogInterface.OnCancelListener onCancelListener)
      Sets the callback that will be called if the dialog is canceled.

      Even in a cancelable dialog, the dialog may be dismissed for reasons other than being canceled or one of the supplied choices being selected. If you are interested in listening for all cases where the dialog is dismissed and not just when it is canceled, see setOnDismissListener.

      Parameters:
      onCancelListener - The callback to be set.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
      See Also:
    • setOnDismissListener

      public DynamicDialog.Builder setOnDismissListener(@Nullable DialogInterface.OnDismissListener onDismissListener)
      Sets the callback that will be called when the dialog is dismissed for any reason.
      Parameters:
      onDismissListener - The callback to be set.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setOnKeyListener

      public DynamicDialog.Builder setOnKeyListener(@Nullable DialogInterface.OnKeyListener onKeyListener)
      Sets the callback that will be called if a key is dispatched to the dialog.
      Parameters:
      onKeyListener - The callback to be set.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setItems

      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. This should be an array type i.e. R.array.foo
      Parameters:
      itemsId - The resource id for the items array.
      listener - The click listener to be set.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setItems

      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener.
      Parameters:
      items - The items array to be displayed.
      listener - The click listener to be set.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setAdapter

      Set a list of items, which are supplied by the given ListAdapter, to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener.
      Parameters:
      adapter - The ListAdapter to supply the list of items.
      listener - The listener that will be called when an item is clicked.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setCursor

      Set a list of items, which are supplied by the given Cursor, to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener.
      Parameters:
      cursor - The Cursor to supply the list of items.
      listener - The listener that will be called when an item is clicked.
      labelColumn - The column name on the cursor containing the string to display in the label.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setMultiChoiceItems

      public DynamicDialog.Builder setMultiChoiceItems(@ArrayRes int itemsId, @Nullable boolean[] checkedItems, @Nullable DialogInterface.OnMultiChoiceClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. This should be an array type, e.g. R.array.foo. The list will have a check mark displayed to the right of the text for each checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      itemsId - the resource id of an array i.e. R.array.foo
      checkedItems - specifies which items are checked. It should be null in which case no items are checked. If non null it must be exactly the same length as the array of items.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setMultiChoiceItems

      public DynamicDialog.Builder setMultiChoiceItems(@Nullable CharSequence[] items, @Nullable boolean[] checkedItems, @Nullable DialogInterface.OnMultiChoiceClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for each checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      items - the text of the items to be displayed in the list.
      checkedItems - specifies which items are checked. It should be null in which case no items are checked. If non null it must be exactly the same length as the array of items.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setMultiChoiceItems

      public DynamicDialog.Builder setMultiChoiceItems(@Nullable Cursor cursor, @Nullable String isCheckedColumn, @Nullable String labelColumn, @Nullable DialogInterface.OnMultiChoiceClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for each checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      cursor - the cursor used to provide the items.
      isCheckedColumn - specifies the column name on the cursor to use to determine whether a checkbox is checked or not. It must return an integer value where 1 means checked and 0 means unchecked.
      labelColumn - The column name on the cursor containing the string to display in the label.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setSingleChoiceItems

      public DynamicDialog.Builder setSingleChoiceItems(@ArrayRes int itemsId, int checkedItem, @Nullable DialogInterface.OnClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. This should be an array type i.e. R.array.foo The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      itemsId - the resource id of an array i.e. R.array.foo
      checkedItem - specifies which item is checked. If -1 no items are checked.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setSingleChoiceItems

      public DynamicDialog.Builder setSingleChoiceItems(@Nullable Cursor cursor, int checkedItem, @Nullable String labelColumn, @Nullable DialogInterface.OnClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      cursor - the cursor to retrieve the items from.
      checkedItem - specifies which item is checked. If -1 no items are checked.
      labelColumn - The column name on the cursor containing the string to display in the label.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setSingleChoiceItems

      public DynamicDialog.Builder setSingleChoiceItems(@Nullable CharSequence[] items, int checkedItem, @Nullable DialogInterface.OnClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      items - the items to be displayed.
      checkedItem - specifies which item is checked. If -1 no items are checked.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setSingleChoiceItems

      public DynamicDialog.Builder setSingleChoiceItems(@Nullable ListAdapter adapter, int checkedItem, @Nullable DialogInterface.OnClickListener listener)
      Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog.
      Parameters:
      adapter - The ListAdapter to supply the list of items.
      checkedItem - specifies which item is checked. If -1 no items are checked.
      listener - notified when an item on the list is clicked. The dialog will not be dismissed when an item is clicked. It will only be dismissed if clicked on a button, if no buttons are supplied it's up to the user to dismiss the dialog.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setOnItemSelectedListener

      public DynamicDialog.Builder setOnItemSelectedListener(@Nullable AdapterView.OnItemSelectedListener listener)
      Sets a listener to be invoked when an item in the list is selected.
      Parameters:
      listener - the listener to be invoked.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
      See Also:
    • setView

      public DynamicDialog.Builder setView(@LayoutRes int layoutResId)
      Set a custom view resource to be the contents of the Dialog. The resource will be inflated, adding all top-level views to the screen.
      Parameters:
      layoutResId - Resource ID to be inflated.
      Returns:
      this Builder object to allow for chaining of calls to set methods
    • setView

      public DynamicDialog.Builder setView(@Nullable View view)
      Sets a custom view to be the contents of the alert dialog.

      When using a pre-Holo theme, if the supplied view is an instance of a ListView then the light background will be used.

      Note: To ensure consistent styling, the custom view should be inflated or constructed using the alert dialog's themed context obtained via getContext().

      Parameters:
      view - the view to use as the contents of the alert dialog
      Returns:
      this Builder object to allow for chaining of calls to set methods
    • setViewRoot

      public DynamicDialog.Builder setViewRoot(@IdRes int viewRootId)
      Set the view root id to add scroll indicators if the content can be scrolled.
      Parameters:
      viewRootId - The root view id of the custom view.
      Returns:
      this Builder object to allow for chaining of calls to set methods
    • setViewRoot

      public DynamicDialog.Builder setViewRoot(@Nullable View viewRoot)
      Set the view root to add scroll indicators if the content can be scrolled.
      Parameters:
      viewRoot - The root view of the custom view.
      Returns:
      this Builder object to allow for chaining of calls to set methods
    • setInverseBackgroundForced

      @Deprecated public DynamicDialog.Builder setInverseBackgroundForced(boolean useInverseBackground)
      Deprecated.
      This flag is only used for pre-Material themes. Instead, specify the window background using on the alert dialog theme.
      Sets the Dialog to use the inverse background, regardless of what the contents is.
      Parameters:
      useInverseBackground - Whether to use the inverse background
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • setRecycleOnMeasureEnabled

      @RestrictTo(LIBRARY_GROUP) public DynamicDialog.Builder setRecycleOnMeasureEnabled(boolean enabled)
      Set whether to enable recycle on enabled fo the dialog.
      Parameters:
      enabled - true to enable the recycle on measure.
      Returns:
      This Builder object to allow for chaining of calls to set methods.
    • create

      @NonNull public DynamicDialog create()
      Creates an DynamicDialog with the arguments supplied to this builder.

      Calling this method does not display the dialog. If no additional processing is needed, show() may be called instead to both create and display the dialog.

      Returns:
      The DynamicDialog with the arguments supplied to this builder.
    • show

      public DynamicDialog show()
      Creates an DynamicDialog with the arguments supplied to this builder and immediately displays the dialog.

      Calling this method is functionally identical to:

           DynamicDialog dialog = builder.create();
           dialog.show();
       
      Returns:
      The DynamicDialog with the arguments supplied to this builder.