ViewModelProvider.Factory

public 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.

Known indirect subclasses
ViewModelProvider.AndroidViewModelFactory

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


Implementations of Factory interface are responsible to instantiate ViewModels.

Summary

Public methods

default @NonNull T
<T extends ViewModel> create(@NonNull Class<@NonNull T> modelClass)

Creates a new instance of the given Class.

default @NonNull T
<T extends ViewModel> create(
    @NonNull Class<@NonNull T> modelClass,
    @NonNull CreationExtras extras
)

Creates a new instance of the given Class.

default @NonNull T
<T extends ViewModel> create(
    @NonNull KClass<@NonNull T> modelClass,
    @NonNull CreationExtras extras
)

Creates a new instance of the given Class.

default static final @NonNull ViewModelProvider.Factory

Creates an InitializerViewModelFactory using the given initializers.

Public methods

create

Added in 2.0.0
default @NonNull T <T extends ViewModel> create(@NonNull Class<@NonNull T> modelClass)

Creates a new instance of the given Class.

Default implementation throws UnsupportedOperationException. ˆ

Parameters
@NonNull Class<@NonNull T> modelClass

a Class whose instance is requested

Returns
@NonNull T

a newly created ViewModel

create

Added in 2.5.0
default @NonNull T <T extends ViewModel> create(
    @NonNull Class<@NonNull T> modelClass,
    @NonNull CreationExtras extras
)

Creates a new instance of the given Class.

Parameters
@NonNull Class<@NonNull T> modelClass

a Class whose instance is requested

@NonNull CreationExtras extras

an additional information for this creation request

Returns
@NonNull T

a newly created ViewModel

create

Added in 2.8.0-alpha03
default @NonNull T <T extends ViewModel> create(
    @NonNull KClass<@NonNull T> modelClass,
    @NonNull CreationExtras extras
)

Creates a new instance of the given Class.

Parameters
@NonNull KClass<@NonNull T> modelClass

a KClass whose instance is requested

@NonNull CreationExtras extras

an additional information for this creation request

Returns
@NonNull T

a newly created ViewModel

from

Added in 2.5.0
default static final @NonNull ViewModelProvider.Factory from(@NonNull ViewModelInitializer<@NonNull ?> initializers)

Creates an InitializerViewModelFactory using the given initializers.

Parameters
@NonNull ViewModelInitializer<@NonNull ?> initializers

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