私は何かが欠けていると思います。次のエラーが表示されます。
PostsVM cannot be provided without an @Inject constructor or from an
@Provides-annotated method.
クラスを次のように想定します。
@Module
public class AppModule {
private final Application mApplication;
@Singleton
@Provides
ViewModel provideListViewModel() {
return new PostsVM();
}
}
そしてクラスPostVM
@Singleton
public class PostsVM extends ViewModel {
public boolean get(){
return true;
}
}
そしてコンポーネント:
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(Global global);
void inject(MainActivity mainActivity);
@Architecture.ApplicationContext
Context getContext();
Application getApplication();
}
そして活動中:
@Inject
public ViewModelProvider.Factory factory;
@Override
protected void onCreate(Bundle savedInstanceState) {
InjectorClass.inject(this);
ご覧のとおり、PostVM クラスの例は何にも依存していません。なぜ @inject コンストラクターが必要なのですか?