Sas*_*ang 4 android android-architecture-components
在viewmodel类中,我看到了构造函数将存储库作为参数接受的示例代码.像这样:
public SampleViewModel(SampleRepository sampleRepository){
...
}
但是在活动中,您使用此行来创建viewmodel类ViewModelProviders.of(this).get(SampleViewModel.class).如何将存储库作为参数传递给viewmodel?我也提到了"依赖注入".作为一个缺乏经验的程序员,任何人都可以建议如果DI与我的问题有关吗?
获取viewmodel时,必须提供ViewModelProvider.Factory.
ViewModelProviders.of(this, new SampleViewModelFactory(sampleRepo)).get(SampleViewModel.class)
Run Code Online (Sandbox Code Playgroud)
这是一个示例:
class SampleViewModelFactory implements ViewModelProvider.Factory {
private final SampleRepository repo;
@Inject
public SampleViewModelFactory(SampleRepository repo) {
this.repo = repo;
}
@Override
public SampleViewModel create(Class modelClass) {
return new SampleViewModel(repo);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |