【发布时间】:2021-06-13 07:43:42
【问题描述】:
错误:无法创建视图模型类的实例
这是我尝试创建它的方式
class MainActivity : AppCompatActivity() {
lateinit var noteViewModel: NoteViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
noteViewModel = ViewModelProvider(
this,
ViewModelProvider.AndroidViewModelFactory.getInstance(this.application)
).get(
NoteViewModel::class.java
)
noteViewModel.getAllNotes().observe(this, object : Observer<List<Note>> {
override fun onChanged(t: List<Note>?) {
Toast.makeText(this@MainActivity, t.toString(), Toast.LENGTH_LONG).show()
}
})
}
}
这是我的视图模型类
class NoteViewModel(application: Application) : AndroidViewModel(application) {
private val repository: NoteRepository = NoteRepository(application)
private val allNotes: LiveData<List<Note>> = repository.getAllNotes()
fun insert(note: Note) {
repository.insert(note)
}
fun delete(note: Note) {
repository.delete(note)
}
fun update(note: Note) {
repository.update(note)
}
fun deleteAll() {
repository.deleteAllNotes()
}
fun getAllNotes(): LiveData<List<Note>> = allNotes
}
一切看起来都很好,我不知道是什么导致了错误
【问题讨论】:
-
看看this,它可以帮助您了解如何初始化
ViewModel。
标签: android kotlin mvvm viewmodel android-viewmodel