ViewModelProvider.NewInstanceFactory


public class ViewModelProvider.NewInstanceFactory implements ViewModelProvider.Factory


Factory that creates ViewModel instances by calling their no-argument constructor.

Summary

Public fields

static 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
)

Creates a new instance of the given modelClass.

Public fields

VIEW_MODEL_KEY

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

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

create

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

Creates a new instance of the given modelClass.

Parameters
@NonNull KClass<@NonNull T> modelClass

KClass 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