ViewModelProvider.AndroidViewModelFactory

open class ViewModelProvider.AndroidViewModelFactory : ViewModelProvider.NewInstanceFactory


Factory which may create AndroidViewModel and ViewModel, which have an empty constructor.

Summary

Public companion functions

ViewModelProvider.AndroidViewModelFactory
getInstance(application: Application)

Retrieve a singleton instance of AndroidViewModelFactory.

Public companion properties

CreationExtras.Key<Application>

A CreationExtras.Key to query an application in which ViewModel is being created.

Public constructors

Constructs this factory.

Constructs this factory.

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

getInstance

Added in 2.4.0
fun getInstance(application: Application): ViewModelProvider.AndroidViewModelFactory

Retrieve a singleton instance of AndroidViewModelFactory.

Parameters
application: Application

an application to pass in AndroidViewModel

Public companion properties

APPLICATION_KEY

val APPLICATION_KEYCreationExtras.Key<Application>

A CreationExtras.Key to query an application in which ViewModel is being created.

Public constructors

AndroidViewModelFactory

Added in 2.5.0
AndroidViewModelFactory()

Constructs this factory. When a factory is constructed this way, a component for which ViewModel is created must provide an Application by APPLICATION_KEY in CreationExtras, otherwise IllegalArgumentException will be thrown from create method.

AndroidViewModelFactory

Added in 2.0.0
AndroidViewModelFactory(application: Application)

Constructs this factory.

Parameters
application: Application

an application to pass in AndroidViewModel

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>

a Class whose instance is requested

Returns
T

a newly created ViewModel

create

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