I used this link for pass parameter to ViewModel constructor when pass one parameter no problem
class ViewModelFactory<T>(val creator: () -> T) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return creator() as T
}
}
inline fun <reified T : ViewModel> Fragment.getViewModel(noinline creator: (() -> T)? = null): T {
return if (creator == null)
ViewModelProviders.of(this).get(T::class.java)
else
ViewModelProviders.of(this, ViewModelFactory(creator)).get(T::class.java)
}
inline fun <reified T : ViewModel> FragmentActivity.getViewModel(noinline creator: (() -> T)? = null):
T {
return if (creator == null)
ViewModelProviders.of(this).get(T::class.java)
else
ViewModelProviders.of(this, ViewModelFactory(creator)).get(T::class.java)
}
but i do not know how to can pass multi parameters to Constructor and return it with above code. can you help me?