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