ViewModelProvider.AndroidViewModelFactory


public class ViewModelProvider.AndroidViewModelFactory extends ViewModelProvider.NewInstanceFactory


Factory that creates AndroidViewModel and ViewModel instances.

Summary

Public fields

static final @NonNull CreationExtras.Key<@NonNull Application>

A CreationExtras.Key to query the Application instance when creating a ViewModel.

Public constructors

Constructs a new AndroidViewModelFactory.

Constructs a new AndroidViewModelFactory.

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

Returns a singleton instance of AndroidViewModelFactory.

Inherited methods

From androidx.lifecycle.ViewModelProvider.NewInstanceFactory
@NonNull T
<T extends ViewModel> create(
    @NonNull KClass<@NonNull T> modelClass,
    @NonNull CreationExtras extras
)

Creates a new instance of the given modelClass.

Public fields

APPLICATION_KEY

public static final @NonNull CreationExtras.Key<@NonNull ApplicationAPPLICATION_KEY

A CreationExtras.Key to query the Application instance when creating a ViewModel.

Public constructors

AndroidViewModelFactory

Added in 2.5.0
public AndroidViewModelFactory()

Constructs a new AndroidViewModelFactory.

When constructed this way, the caller must provide an Application via the APPLICATION_KEY in CreationExtras to create an AndroidViewModel. Otherwise, create throws an IllegalArgumentException.

AndroidViewModelFactory

Added in 2.0.0
public AndroidViewModelFactory(@NonNull Application application)

Constructs a new AndroidViewModelFactory.

Parameters
@NonNull Application application

application instance to pass to AndroidViewModel constructors

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

Class of the ViewModel to create

Returns
@NonNull T

new ViewModel instance of type T

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

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

getInstance

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

Returns a singleton instance of AndroidViewModelFactory.

Parameters
@NonNull Application application

application instance to pass to AndroidViewModel constructors