CreationExtras


Known direct subclasses
CreationExtras.Empty

An empty read-only CreationExtras.

MutableCreationExtras

A modifiable CreationExtras that holds pairs of CreationExtras.Key and Any, allowing efficient value retrieval for each key.


A map-like object holding pairs of CreationExtras.Key and Any, enabling efficient value retrieval for each key. Each key in CreationExtras is unique, storing only one value per key.

CreationExtras is used in ViewModelProvider.Factory.create to provide extra information to the Factory. This makes Factory implementations stateless, simplifying factory injection by not requiring all information at construction time.

This abstract class supports read-only access; use MutableCreationExtras for read-write access.

Summary

Nested types

An empty read-only CreationExtras.

interface CreationExtras.Key<T : Any?>

Key for the elements of CreationExtras.

Public companion functions

inline CreationExtras.Key<T>
<T : Any?> Key()

Returns an unique Key to be associated with an extra.

Cmn

Public functions

open operator Boolean
equals(other: Any?)

Compares the specified object with this CreationExtras for equality.

Cmn
abstract operator T?
<T : Any?> get(key: CreationExtras.Key<T>)

Returns the value to which the specified key is associated, or null if this CreationExtras contains no mapping for the key.

Cmn
open Int

Returns the hash code value for this CreationExtras.

Cmn
open String

Returns a string representation of this CreationExtras.

Cmn

Extension functions

operator Boolean

Checks if the CreationExtras contains the given key.

Cmn
operator MutableCreationExtras

Creates a new read-only CreationExtras by replacing or adding entries to this extras from another creationExtras.

Cmn
SavedStateHandle

Creates SavedStateHandle that can be used in your ViewModels

Cmn

Public companion functions

Key

inline fun <T : Any?> Key(): CreationExtras.Key<T>

Returns an unique Key to be associated with an extra.

Public functions

equals

open operator fun equals(other: Any?): Boolean

Compares the specified object with this CreationExtras for equality.

get

abstract operator fun <T : Any?> get(key: CreationExtras.Key<T>): T?

Returns the value to which the specified key is associated, or null if this CreationExtras contains no mapping for the key.

hashCode

open fun hashCode(): Int

Returns the hash code value for this CreationExtras.

toString

open fun toString(): String

Returns a string representation of this CreationExtras. The string representation consists of a list of key-value mappings in the order returned by the CreationExtras's iterator.

Extension functions

operator fun CreationExtras.contains(key: CreationExtras.Key<*>): Boolean

Checks if the CreationExtras contains the given key.

This method allows to use the key in creationExtras syntax for checking whether an key is contained in the CreationExtras.

operator fun CreationExtras.plus(creationExtras: CreationExtras): MutableCreationExtras

Creates a new read-only CreationExtras by replacing or adding entries to this extras from another creationExtras.

The returned CreationExtras preserves the entry iteration order of the original CreationExtras.

Those entries of another creationExtras that are missing in this extras are iterated in the end in the order of that creationExtras.

createSavedStateHandle

@MainThread
fun CreationExtras.createSavedStateHandle(): SavedStateHandle

Creates SavedStateHandle that can be used in your ViewModels

This function requires enableSavedStateHandles call during the component initialization. Latest versions of androidx components like ComponentActivity, Fragment, NavBackStackEntry makes this call automatically.

This CreationExtras must contain SAVED_STATE_REGISTRY_OWNER_KEY, VIEW_MODEL_STORE_OWNER_KEY and VIEW_MODEL_KEY.

Throws
kotlin.IllegalArgumentException

if this CreationExtras are missing required keys: ViewModelStoreOwnerKey, SavedStateRegistryOwnerKey, VIEW_MODEL_KEY