我正在使用Dagger 2 DataBindng
和新的Android Lifecycle组件,它们具有ViewModels
。
在ViewModel
中,我如何访问我的strings.xml?起初我在想将Context
注入(inject)viewModel
,但是,这只会泄漏内存。
还有其他方法吗?
最佳答案
有一个 AndroidViewModel
,它接收Application
实例作为参数。
从文档:
您可以使用该参数从strings.xml
中检索字符串。
我已经 checkout 了GithubBrowserSample。这是UserViewModel
的样子: public class UserViewModel extends ViewModel { ... @Inject public UserViewModel(UserRepository userRepository, RepoRepository repoRepository) { ... } ... }
这是我所做的更改: public class UserViewModel extends AndroidViewModel { ... @Inject public UserViewModel(Application application, UserRepository userRepository, RepoRepository repoRepository) { super(application); ... } ... }
关于android - 从ViewModel访问strings.xml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46443524/