# SavedStateKt

Added in 1.3.0

*** ** * ** ***


```
public final class SavedStateKt
```

<br />

*** ** * ** ***

## Summary

| ### Public methods |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/savedstate/SavedStateKt#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateReader receiver, @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 https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration )` Retrieves a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)`, or throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` if this `https://developer.android.com/reference/androidx/savedstate/SavedState` does not contain a valid value for the key. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/savedstate/SavedStateKt#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateReader receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> deserializer, @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 https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration )` Retrieves a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)`, or throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` if this `https://developer.android.com/reference/androidx/savedstate/SavedState` does not contain a valid value for the key. |
| `static final void` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/savedstate/SavedStateKt#(androidx.savedstate.SavedStateWriter).putKotlinSerializable(kotlin.String,kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter receiver, @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 T value, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration )` Stores a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateWriter).putKotlinSerializable(kotlin.String,kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)` in the `https://developer.android.com/reference/androidx/savedstate/SavedState`. |
| `static final void` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/savedstate/SavedStateKt#(androidx.savedstate.SavedStateWriter).putKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> serializer, @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 T value, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration )` Stores a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateWriter).putKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)` in the `https://developer.android.com/reference/androidx/savedstate/SavedState`. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/savedstate/SavedStateKt#(androidx.savedstate.SavedState).read(kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState receiver, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateReader, @https://developer.android.com/reference/androidx/annotation/NonNull T> block )` Performs read operations on this `https://developer.android.com/reference/androidx/savedstate/SavedState` using a `https://developer.android.com/reference/androidx/savedstate/SavedStateReader`. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState` | `https://developer.android.com/reference/androidx/savedstate/SavedStateKt#savedState(kotlin.collections.Map,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/Object.html> initialState, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builderAction )` Builds a new `https://developer.android.com/reference/androidx/savedstate/SavedState` with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(kotlin.collections.Map,kotlin.Function1)`, given as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html` of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` keys and `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` value. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html` | `https://developer.android.com/reference/androidx/savedstate/SavedStateKt#savedState(android.os.Bundle,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html initialState, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builderAction )` Builds a new `https://developer.android.com/reference/androidx/savedstate/SavedState` with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(androidx.savedstate.SavedState,kotlin.Function1)`, given as a `https://developer.android.com/reference/androidx/savedstate/SavedState` instance. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/savedstate/SavedStateKt#(androidx.savedstate.SavedState).write(kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState receiver, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter, @https://developer.android.com/reference/androidx/annotation/NonNull T> block )` Performs write operations on this `https://developer.android.com/reference/androidx/savedstate/SavedState` using a `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter`. |

## Public methods

### getKotlinSerializable

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.kt+function:getKotlinSerializable)

```
public static final @NonNull T <T extends Object> getKotlinSerializable(
    @NonNull SavedStateReader receiver,
    @NonNull String key,
    @NonNull SavedStateConfiguration configuration
)
```

Retrieves a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)`, or throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` if this `https://developer.android.com/reference/androidx/savedstate/SavedState` does not contain a valid value for the key.

More specifically, a `https://developer.android.com/reference/androidx/savedstate/SavedState` is considered to contain a valid value for a `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` if the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` exists, the associated value is not `null`, and it is of the expected type.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key` | The `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` to retrieve the value for. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration` | The `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` to use for the decoding process. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)`. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` is not found. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If associated value is `null`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If associated value has wrong type. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/serialization/package-summary#decodeFromSavedState(androidx.savedstate.SavedState,androidx.savedstate.serialization.SavedStateConfiguration)` |   |

### getKotlinSerializable

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.kt+function:getKotlinSerializable) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.5.0)

```
public static final @NonNull T <T extends Object> getKotlinSerializable(
    @NonNull SavedStateReader receiver,
    @NonNull KSerializer<@NonNull T> deserializer,
    @NonNull String key,
    @NonNull SavedStateConfiguration configuration
)
```

Retrieves a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)`, or throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` if this `https://developer.android.com/reference/androidx/savedstate/SavedState` does not contain a valid value for the key.

More specifically, a `https://developer.android.com/reference/androidx/savedstate/SavedState` is considered to contain a valid value for a `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` if the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` exists, the associated value is not `null`, and it is of the expected type.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> deserializer` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html` used to decode the value. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key` | The `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` to retrieve the value for. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration` | The `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` to use for the decoding process. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)`. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateReader).getKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,androidx.savedstate.serialization.SavedStateConfiguration)` is not found. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If associated value is `null`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If associated value has wrong type. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/serialization/package-summary#decodeFromSavedState(androidx.savedstate.SavedState,androidx.savedstate.serialization.SavedStateConfiguration)` |   |

### putKotlinSerializable

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.kt+function:putKotlinSerializable)

```
public static final void <T extends Object> putKotlinSerializable(
    @NonNull SavedStateWriter receiver,
    @NonNull String key,
    @NonNull T value,
    @NonNull SavedStateConfiguration configuration
)
```

Stores a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateWriter).putKotlinSerializable(kotlin.String,kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)` in the `https://developer.android.com/reference/androidx/savedstate/SavedState`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key` | The key to associate the value with. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull T value` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value to store. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration` | The `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` to use for the encoding process. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/serialization/package-summary#encodeToSavedState(kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)` |   |

### putKotlinSerializable

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.kt+function:putKotlinSerializable) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.5.0)

```
public static final void <T extends Object> putKotlinSerializable(
    @NonNull SavedStateWriter receiver,
    @NonNull KSerializer<@NonNull T> serializer,
    @NonNull String key,
    @NonNull T value,
    @NonNull SavedStateConfiguration configuration
)
```

Stores a `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value associated with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedStateWriter).putKotlinSerializable(kotlinx.serialization.KSerializer,kotlin.String,kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)` in the `https://developer.android.com/reference/androidx/savedstate/SavedState`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> serializer` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-k-serializer/index.html` used to encode the value. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key` | The key to associate the value with. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull T value` | The `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization/-serializable/index.html` value to store. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration configuration` | The `https://developer.android.com/reference/androidx/savedstate/serialization/SavedStateConfiguration` to use for the encoding process. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/serialization/package-summary#encodeToSavedState(kotlin.Any,androidx.savedstate.serialization.SavedStateConfiguration)` |   |

### read

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.kt+function:read)

```
public static final @NonNull T <T extends Object> read(
    @NonNull SavedState receiver,
    @NonNull Function1<@NonNull SavedStateReader, @NonNull T> block
)
```

Performs read operations on this `https://developer.android.com/reference/androidx/savedstate/SavedState` using a `https://developer.android.com/reference/androidx/savedstate/SavedStateReader`.

**IMPORTANT:** The `https://developer.android.com/reference/androidx/savedstate/SavedStateReader` passed as a receiver to the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedState).read(kotlin.Function1)` is valid only inside that function. Using it outside of the function may produce unspecified behavior.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateReader, @https://developer.android.com/reference/androidx/annotation/NonNull T> block` | A lambda function that performs read operations using the `https://developer.android.com/reference/androidx/savedstate/SavedStateReader`. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | The result of the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedState).read(kotlin.Function1)` execution. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/SavedStateReader` |   |
| `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` |   |

### savedState

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.+function:savedState)

```
public static final @NonNull SavedState savedState(
    @NonNull Map<@NonNull String, Object> initialState,
    @NonNull Function1<@NonNull SavedStateWriter, Unit> builderAction
)
```

Builds a new `https://developer.android.com/reference/androidx/savedstate/SavedState` with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(kotlin.collections.Map,kotlin.Function1)`, given as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html` of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` keys and `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` value.

Allows further modification of the state using the `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(kotlin.collections.Map,kotlin.Function1)`.

**IMPORTANT:** The `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` passed as a receiver to the `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(kotlin.collections.Map,kotlin.Function1)` is valid only inside that function. Using it outside of the function may produce an unspecified behavior.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/Object.html> initialState` | An initial map of key-value pairs to populate the state. Defaults to an empty map. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builderAction` | A lambda function with a `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` receiver to modify the state. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedState` | A `https://developer.android.com/reference/androidx/savedstate/SavedState` instance containing the initialized key-value pairs. |

### savedState

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.android.kt+function:savedState) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)

```
public static final @NonNull Bundle savedState(
    @NonNull Bundle initialState,
    @NonNull Function1<@NonNull SavedStateWriter, Unit> builderAction
)
```

Builds a new `https://developer.android.com/reference/androidx/savedstate/SavedState` with the specified `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(androidx.savedstate.SavedState,kotlin.Function1)`, given as a `https://developer.android.com/reference/androidx/savedstate/SavedState` instance.

Allows further modification of the state using the `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(androidx.savedstate.SavedState,kotlin.Function1)`.

**IMPORTANT:** The `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` passed as a receiver to the `https://developer.android.com/reference/androidx/savedstate/package-summary#savedState(androidx.savedstate.SavedState,kotlin.Function1)` is valid only inside that function. Using it outside of the function may produce an unspecified behavior.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html initialState` | An initial `https://developer.android.com/reference/androidx/savedstate/SavedState` to populate the state. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builderAction` | A lambda function with a `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` receiver to modify the state. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html` | A `https://developer.android.com/reference/androidx/savedstate/SavedState` instance containing the initialized key-value pairs. |

### write

Artifact: [androidx.savedstate:savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate) [View Source](https://cs.android.com/search?q=file:androidx/savedstate/SavedState.kt+function:write)

```
public static final @NonNull T <T extends Object> write(
    @NonNull SavedState receiver,
    @NonNull Function1<@NonNull SavedStateWriter, @NonNull T> block
)
```

Performs write operations on this `https://developer.android.com/reference/androidx/savedstate/SavedState` using a `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter`.

**IMPORTANT:** The `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` passed as a receiver to the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedState).write(kotlin.Function1)` is valid only inside that function. Using it outside of the function may produce unspecified behavior.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/savedstate/SavedStateWriter, @https://developer.android.com/reference/androidx/annotation/NonNull T> block` | A lambda function that performs write operations using the `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter`. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | The result of the `https://developer.android.com/reference/androidx/savedstate/package-summary#(androidx.savedstate.SavedState).write(kotlin.Function1)` execution. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/savedstate/SavedStateReader` |   |
| `https://developer.android.com/reference/androidx/savedstate/SavedStateWriter` |   |