Как получить объект класса Application в Fragment()?

Мне нужно создать ViewModel для фрагмента. В случае активности способ работал и можно было прямо в конструктор передать application. В случае фрагмента это не работает. В общем-то, нужен любой способ создания VM для фрагмента, либо интересно было бы узнать, как получить Application. Код:

package com.example.newsapp

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider

class CrimeListFragment : Fragment() {

    private val crimeListViewModel: CrimeListViewModel by lazy {
        val crimeListViewModelFactory = ViewModelProvider.AndroidViewModelFactory(//требует Application)
        ViewModelProvider(this, crimeListViewModelFactory)[CrimeListViewModel::class.java]}



}

Ответы (1 шт):

Автор решения: Wlad
  1. requireActivity().application
  2. лучше подключить DI чем фабрику
  3. AndroidViewModel - слегка дурной тон. если во ВьюМодели нужен контекст - в логике, где-то косяк.
→ Ссылка