【问题标题】:mvvm dagger 2 ViewModelInjectormvvm 匕首 2 ViewModelInjector
【发布时间】:2019-01-08 03:14:21
【问题描述】:

那里,我需要帮助,我是 .NET 开发人员,但现在我想尝试 android。 我从这里下载了一个项目:https://github.com/gahfy/MVVMPosts

我遇到了 BaseViewModel.kt 的问题。 我知道 DaggerViewMOdelInjector 是由 dagger 2 使用我的界面 ViewModelInjector 创建的,但它没有创建,我无法构建项目,请帮助我!!

package net.gahfy.mvvmposts.base

import android.arch.lifecycle.ViewModel
import net.gahfy.mvvmposts.injection.component.DaggerViewModelInjector
import net.gahfy.mvvmposts.injection.component.ViewModelInjector
import net.gahfy.mvvmposts.injection.module.NetworkModule
import net.gahfy.mvvmposts.ui.post.PostListViewModel
import net.gahfy.mvvmposts.ui.post.PostViewModel

abstract class BaseViewModel:ViewModel(){
    private val injector: ViewModelInjector = DaggerViewModelInjector
            .builder()
            .networkModule(NetworkModule)
            .build()

    init {
        inject()
    }

    /**
     * Injects the required dependencies
     */
    private fun inject() {
        when (this) {
            is PostListViewModel -> injector.inject(this)
            is PostViewModel -> injector.inject(this)
        }
    }
}

【问题讨论】:

  • 我认为最好用构造函数注入来注入视图模型。看看这篇文章:proandroiddev.com/…
  • 感谢您的评论,我是一个 android 的菜鸟,在这一刻,我想测试这个项目以了解更多这项技术。

标签: android mvvm dagger-2


【解决方案1】:

更新如下:- implementation "com.google.dagger:dagger:$dagger2_version" kapt "com.google.dagger:dagger-compiler:$dagger2_version" annotationProcessor "com.google.dagger:dagger-android-processor:$dagger2_version" // compileOnly "org.glassfish:javax.annotation:3.1.1"

【讨论】:

    猜你喜欢
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多