Как можно добавить SharedPreferences во ViewModel?

Я разрабатываю приложение для Android с подходом MVVM, и мне нужен доступ к разделяемым настройкам во ViewModel, но я не знаю, как это сделать.

Я знаю, что возможен доступ к контексту, если класс наследуется от AndroidViewModel, но я хочу знать, если это возможно, как это сделать путем инъекции.

Для инъекций я использую Dagger 2.

Спасибо

1 ответ

Решение

Это возможно. Как вы упомянули ViewModel должен продлить AndroidViewModel тогда просто позвоните getApplication() и использовать его как контекст при доступе SharedPreferences,

И для использования Dagger 2 в ViewModel: вы не можете напрямую вводить что-либо в ViewModel либо по параметру, либо по внедрению поля, для этого вам нужно будет использовать ViewModel Factory и вводить объекты туда первым и передавать их любому ViewModel ты хочешь.


Чтобы узнать больше об использовании Dagger 2 с ViewModels обратитесь к этой статье.


Удачи:)

Другие вопросы по тегам