# NavArgument.Builder

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

*** ** * ** ***


```
public final class NavArgument.Builder
```

<br />

*** ** * ** ***

A builder for constructing `https://developer.android.com/reference/androidx/navigation/NavArgument` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/navigation/NavArgument.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument` | `https://developer.android.com/reference/androidx/navigation/NavArgument.Builder#build()()` Build the NavArgument specified by this builder. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument.Builder` | `https://developer.android.com/reference/androidx/navigation/NavArgument.Builder#setDefaultValue(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html defaultValue)` Specify the default value for an argument. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument.Builder` | `https://developer.android.com/reference/androidx/navigation/NavArgument.Builder#setIsNullable(kotlin.Boolean)(boolean isNullable)` Specify if the argument is nullable. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument.Builder` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/navigation/NavArgument.Builder#setType(androidx.navigation.NavType)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull T> type)` Set the type of the argument. |

## Public constructors

### Builder

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

```
public Builder()
```

## Public methods

### build

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

```
public final @NonNull NavArgument build()
```

Build the NavArgument specified by this builder. If the type is not set, the builder will infer the type from the default argument value. If there is no default value, the type will be unspecified.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument` | the newly constructed NavArgument. |

### setDefaultValue

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

```
public final @NonNull NavArgument.Builder setDefaultValue(Object defaultValue)
```

Specify the default value for an argument. Calling this at least once will cause the argument to have a default value, even if it is set to null.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html defaultValue` | Default value for this argument. Must match NavType if it is specified. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument.Builder` | This builder. |

### setIsNullable

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

```
public final @NonNull NavArgument.Builder setIsNullable(boolean isNullable)
```

Specify if the argument is nullable. The NavType you set for this argument must allow nullable values.

| Parameters |
|---|---|
| `boolean isNullable` | Argument will be nullable if true. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument.Builder` | This builder. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/NavType#isNullableAllowed()` |   |

### setType

Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
public final @NonNull NavArgument.Builder <T extends Object> setType(@NonNull NavType<@NonNull T> type)
```

Set the type of the argument.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull T> type` | Type of the argument. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavArgument.Builder` | This builder. |