Как создать Android ViewModel, который получает параметры? ⇐ Android
-
Гость
Как создать Android ViewModel, который получает параметры?
Я пытаюсь создать класс VM, который получает число int в качестве параметра, следуя обновленной инструкции с официального сайта: https://developer.android.com/topic/lib ... -factories
Например:
публичный класс TargetFragmentVM расширяет ViewModel { частный int targetId; общественный TargetFragmentVM (int targetId) { this.targetId = targetId; } } Вот пример с официального сайта:
импорт** публичный класс MyViewModel расширяет ViewModel { публичная MyViewModel( МойРепозиторий, Саведстатехандле ) { /* Здесь инициализируем ViewModel */ } статический окончательный инициализатор ViewModelInitializer = новый ViewModelInitializer( MyViewModel.класс, созданиеЭкстра -> { Приложение MyApplication = (MyApplication) CreationExtras.get(APPLICATION_KEY); утверждать приложение!= null; SavedStateHandle saveStateHandle = createSavedStateHandle (creationExtras); вернуть новую MyViewModel(app.getMyRepository(), saveStateHandle); } ); } --- MyViewModel myViewModel = новый ViewModelProvider( этот, ViewModelProvider.Factory.from(MyViewModel.initializer) ).get(MyViewModel.class); // Остальная часть кода активности } Но я не могу понять, как я могу использовать это для моего примера, как я могу передать в этом случае какое-то целое число в качестве параметра. ?
Я пытаюсь создать класс VM, который получает число int в качестве параметра, следуя обновленной инструкции с официального сайта: https://developer.android.com/topic/lib ... -factories
Например:
публичный класс TargetFragmentVM расширяет ViewModel { частный int targetId; общественный TargetFragmentVM (int targetId) { this.targetId = targetId; } } Вот пример с официального сайта:
импорт** публичный класс MyViewModel расширяет ViewModel { публичная MyViewModel( МойРепозиторий, Саведстатехандле ) { /* Здесь инициализируем ViewModel */ } статический окончательный инициализатор ViewModelInitializer = новый ViewModelInitializer( MyViewModel.класс, созданиеЭкстра -> { Приложение MyApplication = (MyApplication) CreationExtras.get(APPLICATION_KEY); утверждать приложение!= null; SavedStateHandle saveStateHandle = createSavedStateHandle (creationExtras); вернуть новую MyViewModel(app.getMyRepository(), saveStateHandle); } ); } --- MyViewModel myViewModel = новый ViewModelProvider( этот, ViewModelProvider.Factory.from(MyViewModel.initializer) ).get(MyViewModel.class); // Остальная часть кода активности } Но я не могу понять, как я могу использовать это для моего примера, как я могу передать в этом случае какое-то целое число в качестве параметра. ?
Мобильная версия