我正在开发一种带有MVVM方法的android应用,我需要访问ViewModel中的sharedpreferences,但我不知道该怎么做。
我知道,如果类从AndroidViewModel继承,则可以访问上下文,但是我想知道是否可以通过注入来实现。
对于注射,我使用的是Dagger 2。
谢谢
答案 0 :(得分:5)
有可能。正如您提到的,ViewModel
必须扩展AndroidViewModel
,然后只需调用getApplication()
并在访问SharedPreferences
时将其用作上下文即可。
在ViewModel
中使用 Dagger 2 :您无法通过参数注入或字段注入直接在ViewModel
中注入任何东西,因为您将需要使用{{1 }},然后先将对象注入那里,然后将它们传递给您想要的ViewModel Factory
。
要了解有关将{strong> Dagger 2 与ViewModel
一起使用的更多信息,请参阅this article。