Передача параметров при создании viewModel

Распространенная задача — при создании viewModel требуется передать параметры из активити или фрагмента.

ViewModel используется для хранения состояния данных экрана, отвечая только за т.н. бизнес логику. Жизненный цикл этого компонента не зависит от изменения конфигурации экрана (поворот экрана), потому он довольно стойко переносит все трансформации, сохраняя данные для активити.

При этом самый простой способ инициализации модели заключается в вызове ViewModelProvider без указания параметров, которые мы хотели бы передать, т.к. мы указываем только имя нашего класса, который был создан на базе ViewModel (или AndroidViewModel).

ViewModelProvider имеет также перегруженный конструктор, где дополнительно к контексту передаётся фабрика созданная на базе ViewModelProvider.Factory. Параметры можно передать, создав собственную фабрику для вашей модели(-ей).

Типичный пример реализации выглядит вот так:

А при инициализации экземпляра вы должны использовать эту фабрику для передачи параметров (в примере у нас только один — param: Int).

Написать комментарий

Мало букафф? Читайте есчо !

Анонимная имплементация интерфейса в kotlin

Январь 18, 2025 г.

На Java этот трюк хорошо обкатан, IDE Android Studio по одному клику вставляет шаблон для реализации кода выбранного интерфейса. На kotlin это работает ...

Читать

Пример реализации Swipe Gesture для любого view элемента

Январь 29, 2025 г.

Для списка есть класс ItemTouchHelper, который реализует свайпы для элементов списка, а хотелось бы получить реализацию этого жеста для любого элемента View. Как это должно работать Это должна быть довольно простая вещь, основанная на обработке ...

Читать

 

Комментарии к «Передача параметров при создании viewModel»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: