ViewModelProvider.NewInstanceFactory

public class ViewModelProvider.NewInstanceFactory implements ViewModelProvider.Factory

Known direct subclasses
ViewModelProvider.AndroidViewModelFactory

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


Simple factory, which calls empty constructor on the give class.

Summary

Public fields

final @NonNull CreationExtras.Key<@NonNull String>

A CreationExtras.Key used to retrieve the key associated with a requested ViewModel.

Public constructors

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.

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

Public fields

VIEW_MODEL_KEY

public final @NonNull CreationExtras.Key<@NonNull StringVIEW_MODEL_KEY

A CreationExtras.Key used to retrieve the key associated with a requested ViewModel.

The ViewModelProvider automatically includes the key in the CreationExtras passed to ViewModelProvider.Factory. This applies to keys generated by either of these usage patterns:

  • ViewModelProvider.get(key, MyViewModel::class): provided key is used.

  • ViewModelProvider.get(MyViewModel::class): generates a key from given class.

See also
VIEW_MODEL_KEY

Public constructors

NewInstanceFactory

Added in 2.0.0
public NewInstanceFactory()

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

create

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