Stay organized with collections Save and categorize content based on your preferences.

ViewModelProvider.AndroidViewModelFactory

public class ViewModelProvider.AndroidViewModelFactory extends ViewModelProvider.NewInstanceFactory


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

Summary

Nested types

Public fields

final @NonNull CreationExtras.Key<@NonNull Application>

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

Public constructors

Constructs this factory.

Constructs this factory.

Public methods

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

Creates a new instance of the given Class.

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

Creates a new instance of the given Class.

static final @NonNull ViewModelProvider.AndroidViewModelFactory

Retrieve a singleton instance of AndroidViewModelFactory.

Public fields

APPLICATION_KEY

public final @NonNull CreationExtras.Key<@NonNull ApplicationAPPLICATION_KEY

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

Public constructors

AndroidViewModelFactory

public 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

public AndroidViewModelFactory(@NonNull Application application)

Constructs this factory.

Parameters
@NonNull Application application

an application to pass in AndroidViewModel

Public methods

create

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

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

getInstance

public static final @NonNull ViewModelProvider.AndroidViewModelFactory getInstance(@NonNull Application application)

Retrieve a singleton instance of AndroidViewModelFactory.

Parameters
@NonNull Application application

an application to pass in AndroidViewModel