# InitializerViewModelFactoryBuilder

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt+class:androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder) Added in [2.5.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.5.0)

*** ** * ** ***


```
@ViewModelFactoryDsl
public final class InitializerViewModelFactoryBuilder
```

<br />

*** ** * ** ***

DSL for constructing a new `https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory`

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#InitializerViewModelFactoryBuilder()()` |

| ### Public methods |
|---|---|
| `final void` | `<T extends https://developer.android.com/reference/androidx/lifecycle/ViewModel> https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> clazz, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras, @https://developer.android.com/reference/androidx/annotation/NonNull T> initializer )` Associates the specified `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)` with the given `https://developer.android.com/reference/androidx/lifecycle/ViewModel` class. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory` | `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#build()()` Returns an instance of `https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory` created from the initializers set on this builder. |

| ### Extension functions |
|---|---|
| `final void` | `<VM extends https://developer.android.com/reference/androidx/lifecycle/ViewModel> https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryKt.https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#(androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder).initializer(kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder receiver, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras, @https://developer.android.com/reference/androidx/annotation/NonNull VM> initializer )` Add an initializer to the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder` |

## Public constructors

### InitializerViewModelFactoryBuilder

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

```
public InitializerViewModelFactoryBuilder()
```

## Public methods

### addInitializer

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

```
public final void <T extends ViewModel> addInitializer(
    @NonNull KClass<@NonNull T> clazz,
    @NonNull Function1<@NonNull CreationExtras, @NonNull T> initializer
)
```

Associates the specified `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)` with the given `https://developer.android.com/reference/androidx/lifecycle/ViewModel` class.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> clazz` | The `https://developer.android.com/reference/androidx/lifecycle/ViewModel` class to associate with the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)`. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/viewmodel/CreationExtras, @https://developer.android.com/reference/androidx/annotation/NonNull T> initializer` | The factory lambda associated with the `https://developer.android.com/reference/androidx/lifecycle/ViewModel` class. |

### build

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

```
public final @NonNull ViewModelProvider.Factory build()
```

Returns an instance of `https://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.Factory` created from the initializers set on this builder.

## Extension functions

### InitializerViewModelFactoryKt.initializer

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt+function:initializer)

```
public final void <VM extends ViewModel> InitializerViewModelFactoryKt.initializer(
    @NonNull InitializerViewModelFactoryBuilder receiver,
    @NonNull Function1<@NonNull CreationExtras, @NonNull VM> initializer
)
```

Add an initializer to the `https://developer.android.com/reference/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder`