Android 为什么viewmodelfactory在我的项目中无法识别?
我正在使用ViewModel开发一个android应用程序,但在我的项目下面出现了以下错误 下面是我的ViewModel实现Android 为什么viewmodelfactory在我的项目中无法识别?,android,kotlin,android-viewmodel,Android,Kotlin,Android Viewmodel,我正在使用ViewModel开发一个android应用程序,但在我的项目下面出现了以下错误 下面是我的ViewModel实现 import android.app.Activity import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelStoreOwner fun <T : ViewModel> Activi
import android.app.Activity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner
fun <T : ViewModel> Activity.obtainViewModel(viewModelClass: Class<T>): T {
val todoRepository = (this.application as TodoApplication).todoRepository
return ViewModelProvider(this as ViewModelStoreOwner, ViewModelFactory(todoRepository)).get(
viewModelClass
)
}
导入android.app.Activity
导入androidx.lifecycle.ViewModel
导入androidx.lifecycle.ViewModelProvider
导入androidx.lifecycle.ViewModelStoreOwner
有趣的活动。获取ViewModel(viewModelClass:Class):T{
val todoRepository=(this.application作为todoRepository)。todoRepository
返回ViewModelProvider(作为ViewModelStoreOwner、ViewModelFactory(todoRepository))。获取(
viewModelClass
)
}
我想知道我在哪里造成了错误
低于我所尝试的
import android.app.Activity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner
fun <T : ViewModel> Activity.obtainViewModel(viewModelClass: Class<T>): T {
val todoRepository = (this.application as TodoApplication).todoRepository
return ViewModelProvider(this as ViewModelStoreOwner, ViewModelProvider.Factory.get(todoRepository,
viewModelClass
))
}
导入android.app.Activity
导入androidx.lifecycle.ViewModel
导入androidx.lifecycle.ViewModelProvider
导入androidx.lifecycle.ViewModelStoreOwner
有趣的活动。获取ViewModel(viewModelClass:Class):T{
val todoRepository=(this.application作为todoRepository)。todoRepository
返回ViewModelProvider(以ViewModelStoreOwner、ViewModelProvider.Factory.get(todoRepository、,
viewModelClass
))
}
获取以下错误类型不匹配:推断类型为ViewModelProvider,但如果查看ViewModelProvider
构造函数,则应为T。第二个是ViewModelProvider.Factory
。将ViewModelFactory(todoRepository)
替换为ViewModelProvider.Factory的实例
fun-AppCompatActivity.ActainViewModel(viewModelClass:Class):T{
返回ViewModelProvider(this).get(viewModelClass)
}
我发现以下错误类型不匹配:推断类型为ViewModelProvider,但T为expected@NicollaGallazzi你能解释一下你所说的编码吗sample@HackerOne请剪切并粘贴您的代码和问题中的错误