我在Kotlin中编写了一个android应用,并在其中使用了recyclerview。一切似乎都很好,但是当我尝试构建它时,我的'onCreate'覆盖了我的适配器类中对recyclerview的所有内容。 我有以下onCreate方法代码:
override fun onCreate()
{
this.IdList = dbHandler.GetProjectPartsIDs(ProjectID)
}
IdList
和dbHandler
都在适配器类中声明(因为它是属性),ProjectID
是适配器类参数。
因此,我的代码实际上 DO 覆盖了onCreate方法(创建ArrayList,然后我将使用该列表来了解需要从onBindViewHolder
中的数据库中检索什么元素)。
我想念什么或做错什么了?
答案 0 :(得分:0)
您将onCreate
与没有这种生命周期类型的对象设置/初始化Activity
或Fragment
的地方混淆了。
在活动或片段中,我们使用onCreate
是因为它是对象生命周期中可以初始化View
之类的东西的地方。
RecyclerView适配器没有这种生命周期。您可以将代码简单地移动到您定义IdList的位置(但如果需要,请确保在初始化后{em} {em} dbHandler
和ProjectID
之后),例如:
var IdList = dbHandler.GetProjectPartsIDs(ProjectID)