'by viewModels()' Kotlin 属性 委托未解析的引用
'by viewModels()' Kotlin property delegate unresolved reference
我正在尝试使用 kotlin 实现视图模型。首先我添加了所需的依赖项:
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.2.0'
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
// Annotation processor
kapt "androidx.lifecycle:lifecycle-compiler:2.2.0"
然后我创建了一个简单的视图模型:
class MyViewModel: ViewModel() {
val greeting = "Hello World"
}
但是当我尝试使用 kotlin 属性 委托从 activity 访问视图模型时:
val model by viewModels<MyViewModel>()
编译器不解析 viewModels
。我不知道是什么问题。我错过了什么吗?
添加这些依赖项:
implementation "androidx.activity:activity-ktx:$activity_version"
implementation "androidx.fragment:fragment-ktx:$fragment_version"
您可以在此处找到最新版本的库:
https://developer.android.com/jetpack/androidx/releases/activity
https://developer.android.com/jetpack/androidx/releases/fragment
对我来说,上面的解决方案不起作用。
我需要导入:
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
对我来说,上面的解决方案不起作用。
添加此依赖项::
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
添加此依赖项:
implementation "androidx.lifecycle:lifecycleviewmodel:2.2.0"
已解决此错误,在模块级别使用以下依赖项build.gradle
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
或
implementation 'androidx.lifecycle:lifecycle-extensions-ktx:2.2.0'
implementation 'androidx.activity:activity-ktx:1.4.0'
implementation 'androidx.fragment:fragment-ktx:1.3.6'
我还添加了以下依赖项以在 Kotlin
中实现 ViewModel
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
我的模块级别 build.gradle 按照下面开始
plugins {
id 'com.android.application'
id 'kotlin-android'
}
就我而言,我只是使用了错误类型的 Activity。我有一个 android.app.Activity
而不是 androidx.appcompat.app.AppCompatActivity
。viewModels()
仅在后者中可用。
我正在尝试使用 kotlin 实现视图模型。首先我添加了所需的依赖项:
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.2.0'
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
// Annotation processor
kapt "androidx.lifecycle:lifecycle-compiler:2.2.0"
然后我创建了一个简单的视图模型:
class MyViewModel: ViewModel() {
val greeting = "Hello World"
}
但是当我尝试使用 kotlin 属性 委托从 activity 访问视图模型时:
val model by viewModels<MyViewModel>()
编译器不解析 viewModels
。我不知道是什么问题。我错过了什么吗?
添加这些依赖项:
implementation "androidx.activity:activity-ktx:$activity_version"
implementation "androidx.fragment:fragment-ktx:$fragment_version"
您可以在此处找到最新版本的库:
https://developer.android.com/jetpack/androidx/releases/activity
https://developer.android.com/jetpack/androidx/releases/fragment
对我来说,上面的解决方案不起作用。
我需要导入:
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
对我来说,上面的解决方案不起作用。
添加此依赖项::
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
添加此依赖项:
implementation "androidx.lifecycle:lifecycleviewmodel:2.2.0"
已解决此错误,在模块级别使用以下依赖项build.gradle
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
或
implementation 'androidx.lifecycle:lifecycle-extensions-ktx:2.2.0'
implementation 'androidx.activity:activity-ktx:1.4.0'
implementation 'androidx.fragment:fragment-ktx:1.3.6'
我还添加了以下依赖项以在 Kotlin
中实现 ViewModelimplementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
我的模块级别 build.gradle 按照下面开始
plugins {
id 'com.android.application'
id 'kotlin-android'
}
就我而言,我只是使用了错误类型的 Activity。我有一个 android.app.Activity
而不是 androidx.appcompat.app.AppCompatActivity
。viewModels()
仅在后者中可用。