为什么我找不到传递给 CheeseViewModel 的应用程序参数?



下面的代码来自架构-组件-示例项目,你可以看到它。

该类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表示您的应用程序实例。

将其提供给CheeseViewModelviewModels<CheeseViewModel>()委托自动处理。

MainActivity扩展AppCompatActivity扩展Activity具有getApplication()方法(在 Kotlin 中可用作application属性)。

最新更新