# NavType.EnumType

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavType.android.kt+class:androidx.navigation.NavType.EnumType) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

*** ** * ** ***


```
public final class NavType.EnumType<D extends Enum<@NonNull ?>> extends NavType.SerializableType<@NonNull D>
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.navigation.NavType](https://developer.android.com/reference/androidx/navigation/NavType) |||
|   | ↳ | [androidx.navigation.NavType.SerializableType](https://developer.android.com/reference/androidx/navigation/NavType.SerializableType)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) D\> ||
|   |   | ↳ | [androidx.navigation.NavType.EnumType](https://developer.android.com/reference/androidx/navigation/NavType.EnumType) |

*** ** * ** ***

EnumType is used for `https://developer.android.com/reference/androidx/navigation/NavArgument`s holding enum values.

Null values are not supported. To specify a default value in a Navigation XML file, simply use the enum constant without the class name, e.g. `app:defaultValue="MONDAY"`.

## Summary

| ### Public constructors |
|---|
| `<D extends https://developer.android.com/reference/java/lang/Enum.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> https://developer.android.com/reference/androidx/navigation/NavType.EnumType#EnumType(java.lang.Class)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull D> type)` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/navigation/NavType.EnumType#getName()()` The name of this type. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull D` | `https://developer.android.com/reference/androidx/navigation/NavType.EnumType#parseValue(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html value)` Parse a value of this type from a String. |

### Inherited methods

From [androidx.navigation.NavType](https://developer.android.com/reference/androidx/navigation/NavType) `boolean` `https://developer.android.com/reference/androidx/navigation/NavType#isNullableAllowed()()`

Check if an argument with this type can hold a null value.
`@https://developer.android.com/reference/androidx/annotation/NonNull D` `https://developer.android.com/reference/androidx/navigation/NavType#parseValue(kotlin.String,kotlin.Any)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html value, @https://developer.android.com/reference/androidx/annotation/NonNull D previousValue)`

Parse a value of this type from a String and then combine that parsed value with the given previousValue of the same type to provide a new value that contains both the new and previous value.
`@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` `https://developer.android.com/reference/androidx/navigation/NavType#serializeAsValue(kotlin.Any)(@https://developer.android.com/reference/androidx/annotation/NonNull D value)`

Serialize a value of this NavType into a String.
`@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` `https://developer.android.com/reference/androidx/navigation/NavType#toString()()` `boolean` `https://developer.android.com/reference/androidx/navigation/NavType#valueEquals(kotlin.Any,kotlin.Any)(@https://developer.android.com/reference/androidx/annotation/NonNull D value, @https://developer.android.com/reference/androidx/annotation/NonNull D other)`

Compares two values of type `https://developer.android.com/reference/androidx/navigation/NavType` and returns true if values are equal.
From [androidx.navigation.NavType.SerializableType](https://developer.android.com/reference/androidx/navigation/NavType.SerializableType) `boolean` `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` `D` `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#get(android.os.Bundle,kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html bundle, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key)`

Get a value of this type from the `savedState`
`int` `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#hashCode()()` `void` `https://developer.android.com/reference/androidx/navigation/NavType.SerializableType#put(android.os.Bundle,kotlin.String,java.io.Serializable)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html bundle, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key, @https://developer.android.com/reference/androidx/annotation/NonNull D value)`

Put a value of this type in the `savedState`

## Public constructors

### EnumType

```
public <D extends Enum<@NonNull ?>> EnumType(@NonNull Class<@NonNull D> type)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull D> type` | the Enum class that is supported by this NavType |

## Public methods

### getName

```
public @NonNull String getName()
```

The name of this type.

This is the same value that is used in Navigation XML `argType` attribute.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | name of this type |

### parseValue

```
public @NonNull D parseValue(@NonNull String value)
```

Parse a value of this type from a String.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html value` | string representation of a value of this type |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull D` | parsed value of the type represented by this NavType |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if value cannot be parsed into this type |