apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
...
dependencies {
...
//dagger2
compile rootProject.ext.dependencies["dagger"]
kapt rootProject.ext.apt["dagger-compiler"]
//dagger2 android 一个dagger2 关于Android的增强库 可选项
compile rootProject.ext.dependencies["dagger-android"]
//可选项
compile rootProject.ext.dependencies["dagger-android-support"]
//可选项
kapt rootProject.ext.apt["dagger-android-processor"]
}
@Singleton
@Component(modules = arrayOf(AppModule::class))
interface AppComponent {
fun inject(app: BaseApplication)
}
@Module
class AppModule(val app: Application) {
@Provides
@Singleton
fun provideApplication() = app
}
class BaseApplication : Application() {
override fun onCreate() {
super.onCreate()
initApplication()
DaggerCoreComponent
.builder()
.coreModule(CoreModule(this))
.build();
}
}
class MainActivity : AppCompatActivity() ,MainContract.View {
@Inject
var mPresenter : MainContract.Presenter ? = null
override fun onCreate(savedInstanceState: Bundle?) {
//******//
super.onCreate(savedInstanceState)
DaggerMainActivityComponent.builder().build().inject(this)
mPresenter?.subscribe()
}
@Module
inner class PresenterModules {
@Provides
fun providePresenter(): MainContract.Presenter {
return MainPresenter(this@MainActivity)
}
}
}
@Component(modules = arrayOf(MainActivity.PresenterModules::class))
interface MainActivityComponent {
fun inject(activity: MainActivity)
}
public final class MainActivity extends AppCompatActivity implements View {
@Inject
@Nullable
private Presenter mPresenter;
-----省略
}
//于是将上述代码改成 @Inject @JvmField var mPresenter : MainContract.Presenter ? = null //或则 @Inject lateinit mPresenter : MainContract.Presenter
@Inject
@JvmField
// @Named("preneter")// 错误 正确的做法如下
@field:[Named("preneter")]
var mPresenter : MainContract.Presenter ? = null
@Module
inner class PresenterModules {
@Provides
@Named("preneter")
fun providePresenter(): MainContract.Presenter {
return MainPresenter(this@MainActivity)
}
@Provides
@Named("hello")
fun provide():String{
return "hello"
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有