ViewModelProvider.Factory

interface ViewModelProvider.Factory

Known direct subclasses
AbstractSavedStateViewModelFactory

Skeleton of androidx.lifecycle.ViewModelProvider.KeyedFactory that creates SavedStateHandle for every requested ViewModel.

SavedStateViewModelFactory

androidx.lifecycle.ViewModelProvider.Factory that can create ViewModels accessing and contributing to a saved state via SavedStateHandle received in a constructor.

ViewModelProvider.NewInstanceFactory

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


Implementations of Factory interface are responsible to instantiate ViewModels.

Summary

Public companion functions

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

Creates an InitializerViewModelFactory using the given initializers.

Public functions

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

Creates a new instance of the given Class.

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

Creates a new instance of the given Class.

Public companion functions

from

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

Creates an InitializerViewModelFactory using the given initializers.

Parameters
vararg initializers: ViewModelInitializer<*>

the class initializer pairs used for the factory to create simple view models

Public functions

create

Added in 2.0.0
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>

a Class whose instance is requested

Returns
T

a newly created ViewModel

create

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

Creates a new instance of the given Class.

Parameters
modelClass: Class<T>

a Class whose instance is requested

extras: CreationExtras

an additional information for this creation request

Returns
T

a newly created ViewModel