# MaterialDatePicker

[View Source](https://github.com/material-components/material-components-android/blob/1.14.0/lib/java/com/google/android/material/datepicker/MaterialDatePicker.java)

*** ** * ** ***


```
public class MaterialDatePicker<S>
```

<br />

*** ** * ** ***

A Dialog with a header, `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialCalendar`, and set of actions.

For more information, see the [component developer guidance](https://github.com/material-components/material-components-android/blob/master/docs/components/DatePicker.md) and [design guidelines](https://material.io/components/date-pickers/overview).

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker.Builder<S>` Used to create MaterialDatePicker instances with default and overridden settings |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#INPUT_MODE_CALENDAR() = 0` Date picker will start with calendar view. |
| `static final int` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#INPUT_MODE_TEXT() = 1` Date picker will start with input text view. |

| ### Public fields |
|---|---|
| `int` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#inputMode()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#MaterialDatePicker()()` |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnCancelListener(DialogInterface.OnCancelListener)(OnCancelListener onCancelListener)` The supplied listener is called when the user cancels the picker via back button or a touch outside the view. |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnDismissListener(DialogInterface.OnDismissListener)(OnDismissListener onDismissListener)` The supplied listener is called whenever the DialogFragment is dismissed, no matter how it is dismissed. |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnNegativeButtonClickListener(View.OnClickListener)( OnClickListener onNegativeButtonClickListener )` The supplied listener is called when the user clicks the cancel button. |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener<? super S>)( https://developer.android.com/reference/com/google/android/material/datepicker/MaterialPickerOnPositiveButtonClickListener<S> onPositiveButtonClickListener )` The supplied listener is called when the user confirms a valid selection. |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#clearOnCancelListeners()()` Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnCancelListener(DialogInterface.OnCancelListener)`. |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#clearOnDismissListeners()()` Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnDismissListener(DialogInterface.OnDismissListener)`. |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#clearOnNegativeButtonClickListeners()()` Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnNegativeButtonClickListener(View.OnClickListener)`. |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#clearOnPositiveButtonClickListeners()()` Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener<? super S>)`. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#getHeaderText()()` Returns the text to display at the top of the DialogFragment |
| `int` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#getInputMode()()` Returns the current `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker.InputMode`. |
| `final S` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#getSelection()()` Returns an `S` instance representing the selection or null if the user has not confirmed a selection. |
| `final void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onCancel(DialogInterface)(DialogInterface dialogInterface)` |
| `final void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onCreate(Bundle)(Bundle bundle)` |
| `final Dialog` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onCreateDialog(Bundle)(Bundle bundle)` |
| `final View` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onCreateView(LayoutInflater,ViewGroup,Bundle)( LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle )` |
| `final void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onDismiss(DialogInterface)(DialogInterface dialogInterface)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onNegativeButtonClick(View)(View view)` Called when the negative button on the picker has been clicked. |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onPositiveButtonClick(View)(View view)` Called when the positive button on the picker has been clicked. |
| `final void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onSaveInstanceState(Bundle)(Bundle bundle)` |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onStart()()` |
| `void` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#onStop()()` |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#removeOnCancelListener(DialogInterface.OnCancelListener)(OnCancelListener onCancelListener)` Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnCancelListener(DialogInterface.OnCancelListener)`. |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#removeOnDismissListener(DialogInterface.OnDismissListener)(OnDismissListener onDismissListener)` Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnDismissListener(DialogInterface.OnDismissListener)`. |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#removeOnNegativeButtonClickListener(View.OnClickListener)( OnClickListener onNegativeButtonClickListener )` Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnNegativeButtonClickListener(View.OnClickListener)`. |
| `boolean` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#removeOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener<? super S>)( https://developer.android.com/reference/com/google/android/material/datepicker/MaterialPickerOnPositiveButtonClickListener<S> onPositiveButtonClickListener )` Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener<? super S>)`. |
| `static long` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#thisMonthInUtcMilliseconds()()` Returns the UTC milliseconds representing the first moment in current month in local timezone. |
| `static long` | `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#todayInUtcMilliseconds()()` Returns the UTC milliseconds representing the first moment of today in local timezone. |

## Constants

### INPUT_MODE_CALENDAR

```
public static final int INPUT_MODE_CALENDAR = 0
```

Date picker will start with calendar view.

### INPUT_MODE_TEXT

```
public static final int INPUT_MODE_TEXT = 1
```

Date picker will start with input text view.

## Public fields

### inputMode

```
public int inputMode
```

## Public constructors

### MaterialDatePicker

```
public MaterialDatePicker()
```

## Public methods

### addOnCancelListener

```
public boolean addOnCancelListener(OnCancelListener onCancelListener)
```

The supplied listener is called when the user cancels the picker via back button or a touch outside the view. It is not called when the user clicks the cancel button. To add a listener for use when the user clicks the cancel button, use `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnNegativeButtonClickListener(View.OnClickListener)`.

### addOnDismissListener

```
public boolean addOnDismissListener(OnDismissListener onDismissListener)
```

The supplied listener is called whenever the DialogFragment is dismissed, no matter how it is dismissed.

### addOnNegativeButtonClickListener

```
public boolean addOnNegativeButtonClickListener(
    OnClickListener onNegativeButtonClickListener
)
```

The supplied listener is called when the user clicks the cancel button.

### addOnPositiveButtonClickListener

```
public boolean addOnPositiveButtonClickListener(
    MaterialPickerOnPositiveButtonClickListener<S> onPositiveButtonClickListener
)
```

The supplied listener is called when the user confirms a valid selection.

### clearOnCancelListeners

```
public void clearOnCancelListeners()
```

Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnCancelListener(DialogInterface.OnCancelListener)`.

### clearOnDismissListeners

```
public void clearOnDismissListeners()
```

Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnDismissListener(DialogInterface.OnDismissListener)`.

### clearOnNegativeButtonClickListeners

```
public void clearOnNegativeButtonClickListeners()
```

Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnNegativeButtonClickListener(View.OnClickListener)`.

### clearOnPositiveButtonClickListeners

```
public void clearOnPositiveButtonClickListeners()
```

Removes all listeners added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener<? super S>)`.

### getHeaderText

```
public String getHeaderText()
```

Returns the text to display at the top of the DialogFragment

The text is updated when the Dialog launches and on user clicks.

### getInputMode

```
public int getInputMode()
```

Returns the current `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker.InputMode`.

### getSelection

```
public final S getSelection()
```

Returns an `S` instance representing the selection or null if the user has not confirmed a selection.

### onCancel

```
public final void onCancel(DialogInterface dialogInterface)
```

### onCreate

```
public final void onCreate(Bundle bundle)
```

### onCreateDialog

```
public final Dialog onCreateDialog(Bundle bundle)
```

### onCreateView

```
public final View onCreateView(
    LayoutInflater layoutInflater,
    ViewGroup viewGroup,
    Bundle bundle
)
```

### onDismiss

```
public final void onDismiss(DialogInterface dialogInterface)
```

### onNegativeButtonClick

```
public void onNegativeButtonClick(View view)
```

Called when the negative button on the picker has been clicked.

| Parameters |
|---|---|
| `View view` | The view that was clicked. |

### onPositiveButtonClick

```
public void onPositiveButtonClick(View view)
```

Called when the positive button on the picker has been clicked.

| Parameters |
|---|---|
| `View view` | The view that was clicked. |

### onSaveInstanceState

```
public final void onSaveInstanceState(Bundle bundle)
```

### onStart

```
public void onStart()
```

### onStop

```
public void onStop()
```

### removeOnCancelListener

```
public boolean removeOnCancelListener(OnCancelListener onCancelListener)
```

Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnCancelListener(DialogInterface.OnCancelListener)`.

### removeOnDismissListener

```
public boolean removeOnDismissListener(OnDismissListener onDismissListener)
```

Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnDismissListener(DialogInterface.OnDismissListener)`.

### removeOnNegativeButtonClickListener

```
public boolean removeOnNegativeButtonClickListener(
    OnClickListener onNegativeButtonClickListener
)
```

Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnNegativeButtonClickListener(View.OnClickListener)`.

### removeOnPositiveButtonClickListener

```
public boolean removeOnPositiveButtonClickListener(
    MaterialPickerOnPositiveButtonClickListener<S> onPositiveButtonClickListener
)
```

Removes a listener previously added via `https://developer.android.com/reference/com/google/android/material/datepicker/MaterialDatePicker#addOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener<? super S>)`.

### thisMonthInUtcMilliseconds

```
public static long thisMonthInUtcMilliseconds()
```

Returns the UTC milliseconds representing the first moment in current month in local timezone.

### todayInUtcMilliseconds

```
public static long todayInUtcMilliseconds()
```

Returns the UTC milliseconds representing the first moment of today in local timezone.