【发布时间】:2022-10-24 14:26:52
【问题描述】:
有人可以帮我如何在 Activity 中实例化 VIEWModel FACTORY
有人可以帮我如何在 Activity 中实例化 VIEWModel FACTORY
主要活动
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val viewModelFactory = DiaryViewModelFactory(diaryDao)
val viewModel = ViewModelProvider(this).get(DiaryViewModel::class.java)
查看模型工厂
override fun <T : ViewModel> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(DiaryViewModel::class.java)) {
@Suppress("UNCHECKED_CAST")
return DiaryViewModel(diaryDao) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}
}
应用类
val database : DiaryDatabase by lazy {
DiaryDatabase.getDatabase(this)
}
}
道类
interface DiaryDao {
@Query("SELECT * from diary WHERE id = :id")
fun getItem(id: Int): Flow<Entry>
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(entry: Entry)
@Update
suspend fun update(entry: Entry)
@Delete
suspend fun delete(entry: Entry)
@Query("SELECT * from diary ORDER BY id ASC")
fun getItems(): Flow<List<Entry>>
}
【问题讨论】:
-
请不要在 SO 上对人们大喊大叫。如果您遇到错误,该错误是什么?
标签: android-studio android-room viewmodel