ViewModelProvider.Factory


Known direct subclasses
AbstractSavedStateViewModelFactory

This class is deprecated. Use `viewModelFactory` or implement `ViewModelProvider.Factory`, combined with `CreationExtras.createSavedStateHandle()`.

SavedStateViewModelFactory

A ViewModelProvider.Factory that creates ViewModels with access to a SavedStateHandle in their constructor.

ViewModelProvider.NewInstanceFactory

Simple factory, which calls empty constructor on the give class.


Implementations of the Factory interface are responsible for instantiating ViewModels.

Summary

Public companion functions

ViewModelProvider.Factory
from(vararg initializers: ViewModelInitializer<*>)

Creates an InitializerViewModelFactory using the given initializers.

android

Public functions

open T
<T : ViewModel> create(modelClass: Class<T>)

Creates a new instance of the given Class.

android
open T
<T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras)

Creates a new instance of the given Class.

android
T
<T : ViewModel> create(modelClass: KClass<T>, extras: CreationExtras)

Creates a new instance of the given modelClass.

Cmn
android

Public companion functions

from

fun from(vararg initializers: ViewModelInitializer<*>): ViewModelProvider.Factory

Creates an InitializerViewModelFactory using the given initializers.

Parameters
vararg initializers: ViewModelInitializer<*>

class initializer pairs used to create simple ViewModels

Public functions

create

open fun <T : ViewModel> create(modelClass: Class<T>): T

Creates a new instance of the given Class.

Default implementation throws UnsupportedOperationException.

Parameters
modelClass: Class<T>

Class of the ViewModel to create

Returns
T

new ViewModel instance of type T

create

open fun <T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras): T

Creates a new instance of the given Class.

Parameters
modelClass: Class<T>

Class of the ViewModel to create

extras: CreationExtras

CreationExtras passed to the Factory to create the ViewModel

Returns
T

new ViewModel instance of type T

create

fun <T : ViewModel> create(modelClass: KClass<T>, extras: CreationExtras): T

Creates a new instance of the given modelClass.

Parameters
modelClass: KClass<T>

KClass of the ViewModel to create

extras: CreationExtras

CreationExtras passed to the Factory to create the ViewModel

Returns
T

new ViewModel instance of type T