下面的代码来自架构-组件-示例项目,你可以看到它。
该类CheeseViewModel
接受Application
的参数,我需要传递Application
的参数来创建对象。
但是我在项目中找不到任何Application
参数来实例化该类,你能告诉我为什么吗?
MainActivity.kt
class MainActivity : AppCompatActivity() {
private val viewModel by viewModels<CheeseViewModel>()
...
}
CheeseViewModel.kt
class CheeseViewModel(app: Application) : AndroidViewModel(app) {
val dao = CheeseDb.get(app).cheeseDao()
...
}
您是否尝试运行该示例?因为您似乎在询问有关示例的许多问题,甚至没有导入代码......
Application
表示您的应用程序实例。
将其提供给CheeseViewModel
由viewModels<CheeseViewModel>()
委托自动处理。
MainActivity
扩展AppCompatActivity
扩展Activity
具有getApplication()
方法(在 Kotlin 中可用作application
属性)。