Kotlin与dagger2
来源:互联网 发布:js json数组 某一个key 编辑:程序博客网 时间:2024/06/16 22:33
dagger2是用于Android的依赖注入框架
这篇文章只是简单讲述了kotlin怎么用dagger2,我不会详细的说明dagger2
首先是在你的gradle里配置dagger2
//加入daggercompile 'com.google.dagger:dagger:2.5'//compile 'com.google.dagger:dagger-compiler:2.5'kapt 'com.google.dagger:dagger-compiler:2.5'
然后是你的module类
@Moduleclass MainModule (val mView: IMainView){ @ActivityScope @Provides fun provideView(): IMainView = mView @ActivityScope @Provides fun provideModle(requestQueue: RequestQueue, volleyRequest: VolleyRequest): IMainModel = MainActivityModel(requestQueue, volleyRequest) @ActivityScope @Provides fun providePersent(view: IMainView, model: IMainModel): IMainPersenter = MainPresenter(model, view)}
接着是你的注入器
@ActivityScope@Component(modules = arrayOf(MainModule::class), dependencies = arrayOf(AppComponent::class))interface MainComponent{ fun inject(activity: MainActivity)}实现依赖注入
class MainActivity : AppCompatActivity(), IMainView { @Inject lateinit var persenter: IMainPersenter public override fun onCreate(saveInstanceBundle: Bundle?) { super.onCreate(saveInstanceBundle) setContentView(R.layout.activity_main) initMvp() } private fun initMvp(){ DaggerMainComponent .builder() .mainModule(MainModule(this)) .appComponent(HelpUtils.getInstance().appComponent) .build().inject(this) }}因为kotlin中的变量都需要初始化一个值,或者你需要使用委托方式进行稍后初始化,但是dagger2不支持委托方式,所以需要用关键子latinit表示这个变量将在稍后初始话。这样就可以进行注入了
阅读全文
0 0
- Kotlin与dagger2
- 在kotlin-MVP使用dagger2(v2.11+)
- Kotlin学习笔记——Dagger2
- Kotlin 踩坑日记(一)Kotlin Dagger2 配置使用
- Dagger2配置与入门
- Dagger2基础与进阶
- Dagger2与AndroidInjector
- Dagger2 学习与理解
- Dagger2基本使用与原理
- 解决Dagger2与ButterKnife冲突
- Dagger2的了解与使用
- Dagger2
- Dagger2
- Dagger2
- Dagger2
- dagger2
- Dagger2
- Dagger2
- 代码整洁之道-第六章-对象和数据结构-page87
- [LeetCode]611. Valid Triangle Number
- Spring注解@Resource和@Autowired区别对比
- Mysql常用技巧
- Swift
- Kotlin与dagger2
- iOS纯代码实现界面建立、跳转、导航栏(无storyboard、无nib)(Objective-C)
- Swift
- Window钩子,qt调用实测,跨DLL回调
- android studio退出
- leetcode88. Merge Sorted Array
- 汇编入门
- 1003 Max Sum(水题)
- Swift