gpt4 book ai didi

kotlin - MVP + Dagger2 + Kotlin : lateinit property presenter has not been initialized

转载 作者:行者123 更新时间:2023-12-01 13:18:58 25 4
gpt4 key购买 nike

我将我的项目设置为 MVP 架构。我能够为 MainActivityListAdapter 设置 MVP。基本上我在 ListAdapter 中有一个图像列表,当单击项目时,它将启动 PhotoDetailActivity 我已经设置了 PresenterView 已经。

ListAdapter.kt(完整要点 here)

override fun onBindViewHolder(holder: ListViewHolder, position: Int) {
val photo = photos[position]
holder.bind(photo)
holder.itemLayout.setOnClickListener {
listener.itemDetail(photo.id)
}
Glide
.with(context)
.load(photo.urls.regular)
.into(holder.photo)
Glide
.with(context)
.load(photo.user.profile_image.small)
.into(holder.userAvatar)
}

PhotoDetailActivity.kt(完整要点 here)

lateinit var presenter: PhotoDetailContract.Presenter

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_photo_detail)
var photoId: String = intent.getStringExtra("photoId")

injectDependency()
presenter.attach(this)
initView(photoId)
}

但是它说:

kotlin.UninitializedPropertyAccessException: lateinit property presenter has not been initialized

我的完整代码是 here

最佳答案

这样声明成员:

lateinit var presenter: PhotoDetailContract.Presenter

..ini 表示此引用将在构造函数运行后的某个时间点初始化。但是,您似乎没有任何代码来执行此操作。看了一眼你的项目,我想你的意思可能是让 Dagger 注入(inject)那个实例。为此,您需要添加 @Inject 注释,如下所示:

@Inject lateinit var presenter: PhotoDetailContract.Presenter

关于kotlin - MVP + Dagger2 + Kotlin : lateinit property presenter has not been initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51586169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com