Как можно добавить SharedPreferences во ViewModel?
Я разрабатываю приложение для Android с подходом MVVM, и мне нужен доступ к разделяемым настройкам во ViewModel, но я не знаю, как это сделать.
Я знаю, что возможен доступ к контексту, если класс наследуется от AndroidViewModel, но я хочу знать, если это возможно, как это сделать путем инъекции.
Для инъекций я использую Dagger 2.
Спасибо
1 ответ
Это возможно. Как вы упомянули ViewModel
должен продлить AndroidViewModel
тогда просто позвоните getApplication()
и использовать его как контекст при доступе SharedPreferences
,
И для использования Dagger 2 в ViewModel
: вы не можете напрямую вводить что-либо в ViewModel
либо по параметру, либо по внедрению поля, для этого вам нужно будет использовать ViewModel Factory
и вводить объекты туда первым и передавать их любому ViewModel
ты хочешь.
Чтобы узнать больше об использовании Dagger 2 с ViewModels
обратитесь к этой статье.
Удачи:)