【发布时间】:2021-07-10 16:13:09
【问题描述】:
我在我的应用程序中使用房间数据库,并且我正在使用 MVVM 设计模式。当我在访问 dao 方法时创建视图模型时,它会显示以下错误。
No value passed for parameter 'context'
下面是我的代码:
RoomDb.kt
@Database(entities=[UserEntity::class],version = 1)
abstract class RoomDb: RoomDatabase() {
abstract fun useDao():UserDao
companion object{
private var INSTANCE:RoomDb ?= null
fun getRooomDb(context: Context): RoomDb{
if(INSTANCE == null){
INSTANCE = Room.databaseBuilder<RoomDb>(
context.applicationContext,RoomDb::class.java,"AppDb"
).allowMainThreadQueries().build()
}
return INSTANCE!!
}
}
}
UserDao
@Dao
interface UserDao {
@Query("SELECT * FROM Users ORDER BY id DESC")
fun getAllUsers(): List<UserEntity>
@Insert
fun insertUser(user: UserEntity)
@Delete
fun deleteUser(user: UserEntity)
}
HomeViewModel.kt
class HomeViewModel: ViewModel(){
fun allUser(){
val db = RoomDb.getRooomDb().useDao()
}
}
我在RoomDb.getRooomDb().useDao() 行中遇到错误。请告诉我如何解决此错误。
【问题讨论】:
标签: kotlin mvvm android-room android-viewmodel