小编Dav*_*vid的帖子

我应该如何将 Dagger2 与 Retrofit 一起使用?

我在一个项目中工作,我需要用 Dagger 2 注入 Retrofit 对象。我搜索了信息,但我只能执行几个步骤,现在我不知道如何继续:

我的组件:

@Singleton
@Component(modules = arrayOf(NetworkModule::class))
interface NetworkComponent {
    fun inject(foo: TheApplication)
}
Run Code Online (Sandbox Code Playgroud)

我的模块:

@Module
class NetworkModule {

    @Provides
    @Singleton
    fun provideRetrofit(): Retrofit {
        return Retrofit.Builder()
            .baseUrl("https://api.chucknorris.io/")
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build()
    }

}
Run Code Online (Sandbox Code Playgroud)

现在我看到我必须创建一个Classwho 扩展自Applicationfor initComponent并创建一个@Inject下一个:

class TheApplication: Application() {

    override fun onCreate() {
        super.onCreate()
        val net: NetworkModule = Dagger...
    }
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,当我把Dagger...它放在应该是DaggerNetworkComponent但我重建项目时仍然丢失。任何人都可以向我解释它的Application.class用途以及我如何继续?

android kotlin retrofit dagger-2

4
推荐指数
1
解决办法
2409
查看次数

如何使用一个 ViewModelFactory 为 ViewModel 提供 Dagger

如何实现一个ViewModelFactory来提供我的项目ViewModels及其对整个项目的依赖?

java android viewmodel kotlin dagger

3
推荐指数
1
解决办法
2978
查看次数

@IntoMap @Binds 到底如何与 Dagger 配合使用?

我正在使用Dagger并且我想要@inject一个Repository我的ViewModel所以我创建一个抽象模块,其中包含Map存储库类:

我的抽象模块:

@Module
abstract class RepositoryModule{

    @Binds
    @IntoMap
    @ClassKey(RepositoryStatus::class)
    abstract fun provideRepositoryStatus(repositoryStatus: RepositoryStatus): RepositoryStatus
}
Run Code Online (Sandbox Code Playgroud)

我的ViewModel模块包括RespositoryModule

@Module(includes = [
    RepositoryModule::class
])
abstract class ViewModelModule {
    @Binds
    @IntoMap
    @ViewModelKey(MainViewModel::class)
    abstract fun bindsMainViewModel(viewModel: MainViewModel): ViewModel
}
Run Code Online (Sandbox Code Playgroud)

我不知道它到底是如何工作的,Dagger 如何知道我有一张地图并且我将它与我的绑定ViewModel?因为我从来没有使用过这个方法。我在图表中包含了一张地图,因此我认为除非我调用它,否则它无法使用。

java android kotlin dagger-2

3
推荐指数
1
解决办法
7205
查看次数

标签 统计

android ×3

kotlin ×3

dagger-2 ×2

java ×2

dagger ×1

retrofit ×1

viewmodel ×1