ViewModelProvider.AndroidViewModelFactory

public class ViewModelProvider.AndroidViewModelFactory extends ViewModelProvider.NewInstanceFactory


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

Summary

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

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

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

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