اگر کلاس viewModel دارای آرگومان باشد، در این صورت برای instance کردن آن باید کلاس فکتوری تعریف کنیم:
class ViewModelFactory(private val num:Int): ViewModelProvider.Factory{
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
if(modelClass.isAssignableFrom(MyViewModel::class.java)){
return MyViewModel(num) as T
}
throw IllegalArgumentException("Not Found")
}
}
این کلاس همیشه به همین فرمت نوشته میشه.