为什么在Android上使用Dagger2时不显示数据

问题描述 投票:0回答:2

在我的应用程序中,我想使用Dagger2,我只想显示服务器中的一幅图像,而我要显示的图像中使用Picasso。我写下面的代码,但运行应用程序后,没有显示任何图像进入imageview!对于android,我使用Kotlin语言。

应用程序类:

class App : Application() {

    var component: AppComponent? = null

    override fun onCreate() {
        super.onCreate()
        //Init dagger component
        component = DaggerAppComponent.builder().modulePicasso(ModulePicasso(this)).build()
    }

    fun getAppComponent(): AppComponent? {
        return component
    }
}

活动类别:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        App().getAppComponent()?.getPicasso()?.load("https://cdn01.zoomit.ir/2017/6/5f0e97c1-9eb7-4176-aa02-35252489ede8.jpg")
            ?.into(imageView)
    }
}

我该如何解决?

android kotlin dagger-2 picasso
2个回答
0
投票

声明您的互联网许可


0
投票

我认为是因为您正在创建应用程序类的新实例,例如。 App(),然后调用getAppComponent(),它肯定会返回null,就像您应该not自己构造应用程序实例,而是访问引用它的静态属性。

要修复它,您需要向instance类添加静态属性(App),并使用该属性获取AppComponent

© www.soinside.com 2019 - 2024. All rights reserved.