gpt4 book ai didi

android - java.lang.ClassCastException : com. eng.bt_eng_mobility.viewmodel.HomeViewModelFactory 无法转换为 androidx.lifecycle.ViewModel

转载 作者:行者123 更新时间:2023-12-05 00:18:45 25 4
gpt4 key购买 nike

我收到此错误。我在同一个 ViewModel 类文件中创建了 ViewModelFactory 类。
当我尝试初始化 View 模型时,我收到了这个错误。

//Code written in fragment class in onCreateView after binding code//
homeViewModelFactory = HomeViewModelFactory((requireActivity().application as Application).repository)
homeViewModel = ViewModelProvider(this, homeViewModelFactory)
.get(HomeViewModel::class.java)


//Viewmodelfactoryclass//
class HomeViewModelFactory(private val homeRepository: HomeRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(HomeViewModel::class.java)) {
return HomeViewModelFactory(homeRepository) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}
}


最佳答案

ViewModelProvider.Factory 的工作是创建您的ViewModel 的实例类(class)。目前你所做的只是返回你工厂的一个新实例。
相反,您的 return 语句可能应该是这样的:

return HomeViewModel(homeRepository) as T
This article涵盖 ViewModel 的基础知识更详细。

关于android - java.lang.ClassCastException : com. eng.bt_eng_mobility.viewmodel.HomeViewModelFactory 无法转换为 androidx.lifecycle.ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66834890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com