У меня есть ViewModel , созданный в действии:
mOrdersViewModel = ViewModelProviders.of(this, viewModelFactory).get(OrdersViewModel.class);
Я хотел бы добавить его, как показано ниже:
@Inject OrdersViewModel mOrdersViewModel
Это моя ViewModel:
public class OrdersViewModel extends ViewModel {
private OrdersRepository trelloRepository; ();
@Inject
OrdersViewModel(@NonNull OrdersRepository repository) {
this.repository = repository;
}
Модуль ViewModelFactory:
@Module
public abstract class ViewModelModule {
@Binds
@IntoMap
@ViewModelKey(OrdersViewModel.class)
abstract ViewModel bindMovieListViewModel(OrdersViewModel ordersViewModel);
@Binds
abstract ViewModelProvider.Factory bindViewModelFactory(ProjectViewModelFactory projectViewModelFactory);
Наконец, я получаю Viewmodel в MainActivity, поэтому:
public class MainActivity extends AppCompatActivity implements HasSupportFragmentInjector, OrderCallback {
@Inject
DispatchingAndroidInjector<Fragment> dispatchingAndroidInjector;
@Inject
public ViewModelProvider.Factory viewModelFactory;
private OrdersViewModel mOrdersViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AndroidInjection.inject(this);
ButterKnife.bind(this);
mOrdersViewModel = ViewModelProviders.of(this, viewModelFactory)
.get(OrdersViewModel.class);