0

I am new in Android development especially using MVVM pattern. I need context in my viewModel, so I use AndroidViewModel to get context through application, but I don't know why I can't access the application

class CreateEventViewModel(application: Application) : AndroidViewModel(application) {

    fun checkIfItHasInternetConnection() {

        if (InternetConnection.checkConnection(application)) {

        }

    }

}

enter image description here

Alexa289
  • 8,089
  • 10
  • 74
  • 178

4 Answers4

1

Just try to call getApplication<Application>(). This is a method in AndroidViewModel to get the application :) No need to store application as a field.

Zholoth
  • 86
  • 3
0

use private val application:Application in primary constructor

below example : try this way

class CreateEventViewModel(private val application: Application) : AndroidViewModel(application) {

fun checkIfItHasInternetConnection() {

    if (InternetConnection.checkConnection(application)) {

    }

}
}
Solanki Zeel
  • 548
  • 1
  • 7
  • 18
0

Try this

class CreateEventViewModel(private val application: Application) : AndroidViewModel(application) {

    fun checkIfItHasInternetConnection() {

        if (InternetConnection.checkConnection(application)) {

        }

    }

}
theanilpaudel
  • 3,348
  • 8
  • 39
  • 67
0

updated code:

data class CreateEventViewModel(val application: Application) : AndroidViewModel(application) {

    fun checkIfItHasInternetConnection() {

        if (InternetConnection.checkConnection(application)) {

        }

    }

}
naXa stands with Ukraine
  • 35,493
  • 19
  • 190
  • 259