【发布时间】:2020-10-20 15:45:28
【问题描述】:
我在 Kotlin 的项目中使用 Room 数据库、LiveData 和 ViewModel。我有我之前创建的 Prepopulate 数据库。我的目标是使用 Room 读取此数据库并将数据库中的数据显示到回收视图中。
所以我在资产文件夹中复制数据库并使用.createFromAsset 方法。当我在路径data/data/packagename.my 中运行项目数据库复制时,我的问题是当我运行项目时,它在我的 recycleveiw 中什么都没有显示。我检查了几次代码并看到了很多示例,但每次它都显示空的recycleview并且从不显示我的数据库信息。我真的很困惑,找不到我的问题。你能告诉我我哪里错了吗?谢谢你。这是我的代码:
Recycleview 适配器:
override fun onBindViewHolder(holder: RoomViewHolder, position: Int) {
if(holder is RoomViewHolder) {
val current = entitys[position]
holder.placeNameTextView.text = current.name
}
}
internal fun setentitiys(entitis: List<Detail_Entity>) {
this.entitys = entitys
notifyDataSetChanged()
}
override fun getItemCount() = entitys.size
inner class RoomViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var placeNameTextView: TextView = itemView.placeNameTextView
}
【问题讨论】:
-
看来你走在了正确的轨道上。您确定表中有数据吗?你能检查一下数据库检查员吗?
-
@MD 是的。当我将数据库从模拟器存储中的数据/数据/包名称复制到我的电脑并使用数据库检查器打开时,我看到了我的表,里面有我的所有数据。