我想从java activity类初始化KotlinViewModel,但我不知道用什么作为ViewModelProvider.Factory.from
的参数。
KotlinViewModel
class QueueViewModel : ViewModel() {
companion object {
val Factory: ViewModelProvider.Factory = object : ViewModelProvider.Factory {
override fun <T : ViewModel> create(
modelClass: Class<T>,
extras: CreationExtras
): T {
return super.create(modelClass, extras)
}
}
}
}
Java活动
public abstract class BaseQueueActivity extends BaseScreenActivity implements IModule {
private QueueViewModel viewModel = new ViewModelProvider(
this,
ViewModelProvider.Factory.from(QueueViewModel.Companion.getFactory())
).get(QueueViewModel.class);
}
当我使用这个时,我得到Cannot resolve method 'from(Factory)'
错误消息。我应该使用什么作为正确的输入参数?
1条答案
按热度按时间nszi6y051#
因为
from
方法需要ViewModelInitializer
而不是ViewModelProvider.Factory
,正如您可以看到下面提到的源代码所以你需要像下面提到的那样修改Kotlin代码
在java方面你可以这样做