依赖
implementation 'com.google.dagger:dagger:2.14.1'
annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'
Component
package com.bwei.retiodit_rxjava_mvp.di.IComponent;
import com.bwei.retiodit_rxjava_mvp.di.IModule.MyModule;
import com.bwei.retiodit_rxjava_mvp.di.IModule.MyMoldeMoudule;
import com.bwei.retiodit_rxjava_mvp.di.IPresenter.Presenter;
import com.bwei.retiodit_rxjava_mvp.ui.activity.MainActivity;
import dagger.Component;
/**
* Created by JackLee on 2018/9/5.
*/
public class MyComponent {
@Component(modules = MyModule.class)
public interface PresenterComponent{
public void inject(MainActivity mainActivity);
}
@Component(modules = MyMoldeMoudule.class)
public interface ModelComponent{
public void inject(Presenter presenter);
}
}
Module
package com.bwei.retiodit_rxjava_mvp.di.IModule;
import com.bwei.retiodit_rxjava_mvp.di.IPresenter.Presenter;
import dagger.Module;
import dagger.Provides;
@Module
public class MyModule {
@Provides
public Presenter getPresenter(){
Presenter presenter = new Presenter();
return presenter;
}
}
mian
@Inject
Presenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
DaggerMyComponent_PresenterComponent.builder().myModule(new MyModule()).build().inject(this);
presenter.attachView(this);
}