[英]Cannot resolve method of android.support.v4.app.FragmentActivity in ViewModelProviders
I am trying to implement architecture component in my application, but when I am to add lifecycleowner to my viewmodel inside my fragment with getActivity()
its show message 我正在尝试在应用程序中实现体系结构组件,但是当我使用
getActivity()
在片段中的视图模型中添加生命周期getActivity()
其显示消息
Cannot resolve method of android.support.v4.app.FragmentActivity
无法解析android.support.v4.app.FragmentActivity的方法
This is my code: 这是我的代码:
viewModel = ViewModelProviders.of(getActivity()).get(MyViewModel.class);
viewModel.setToken(token);
viewModel.getRecent().observe(getActivity(), new Observer<List<Recent>>() {
@Override
public void onChanged(List<Recent> recent) {
adapter.setData(recent);
}
});
My fragment is derived from android.support.v4.app.Fragment
我的片段来自
android.support.v4.app.Fragment
and MyActivity is extends AppCompatActivity
和MyActivity扩展了
AppCompatActivity
and this is my Gradle file: 这是我的Gradle文件:
def paging_version = "2.1.0"
def lifecycle_version = "2.0.0"
def room_version = "2.1.0-alpha04"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation "androidx.paging:paging-runtime:$paging_version"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
How do I solve this problem? 我该如何解决这个问题? thanks in advance.
提前致谢。
Problem 问题
In androidx.lifecycle.ViewModelProviders.of(FragmentActivity)
, they accept androidx.fragment.app.FragmentActivity
, not android.support.v4.app.FragmentActivity
. 在
androidx.lifecycle.ViewModelProviders.of(FragmentActivity)
,他们接受androidx.fragment.app.FragmentActivity
,而不是android.support.v4.app.FragmentActivity
。
Solution 解
Migrate to AndroidX
which introduced from Android Studio 3.2. Migrate to AndroidX
将整个项目Migrate to AndroidX
。 You can found information in this page dependencies {
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
// alternatively - just ViewModel
implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // For Kotlin use viewmodel-ktx
// alternatively - just LiveData
implementation "android.arch.lifecycle:livedata:$lifecycle_version"
// alternatively - Lifecycles only (no ViewModel or LiveData).
// Support library depends on this lightweight import
implementation "android.arch.lifecycle:runtime:$lifecycle_version"
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor
// alternately - if using Java8, use the following instead of compiler
implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
// optional - ReactiveStreams support for LiveData
implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"
// optional - Test helpers for LiveData
testImplementation "android.arch.core:core-testing:$lifecycle_version"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.