Почему я не могу найти параметр приложения, переданного в CheeseViewModel? - PullRequest
0 голосов
/ 06 апреля 2020

Следующий код взят из проекта Architecture-components-samples, вы можете увидеть it .

Класс 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()

    ...
}

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Вы пробовали запустить пример? Поскольку кажется, что вы задаете несколько вопросов об образце, даже не импортируя код ...

Application представляет экземпляр вашего приложения.

Предоставление CheeseViewModel автоматически обрабатывается делегатом viewModels<CheeseViewModel>().

1 голос
/ 06 апреля 2020

MainActivity extends AppCompatActivity, который расширяется Activity, который имеет метод getApplication() (может использоваться как свойство application в Kotlin).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...