ViewModelProvider.Factory


public interface 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 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 static final @NonNull ViewModelProvider.Factory
from(@NonNull ViewModelInitializer<@NonNull ?>... initializers)

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

Class of the ViewModel to create

Returns
@NonNull T

new ViewModel instance of type T

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

Class of the ViewModel to create

@NonNull CreationExtras extras

CreationExtras passed to the Factory to create the ViewModel

Returns
@NonNull T

new ViewModel instance of type T

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

class initializer pairs used to create simple ViewModels