我试图用ViewModelProvider获取我的自定义ViewModel"ViewModelSavegame"来设置一个Observer。
viewModelSavegame = ViewModelProvider.of(this).get(ViewModelSavegame.class);
viewModelSavegame.GetSavegameName().observe(this, new Observer<String>()
{
@Override
public void onChanged(String s)
{
TextView title = (TextView) findViewById(R.id.textViewTitel);
title.setText(s);
}
});
在Gradle构建(模块:应用程序(中,我有依赖项
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"
implementation "androidx.lifecycle:lifecycle-livedata:2.2.0"
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
但是ViewModelProvider((的创建错误:
错误:找不到符号viewModelSavegame=ViewModelProvider.of(this(.get(viewModelSavegame.class(;^symbol:(SavegameTabbedActivity(的方法
我是不是错过了什么可能是依赖?
将代码从ViewModelProvider.of(this(.get(ViewModelSavegame.class(更改为ViewModelProvider(this(.get(ViewModelSavegame.class(.
解决方案:
使用viewModelSavegame = ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication()).create(ViewModelSavegame.class);
也许有人可以提供进一步的信息,但of((似乎被getInstance((取代了。我希望这是在TabbedActivity及其片段中使用它的正确方式,以提供相同的视图模型,但至少它可以工作,不会导致应用程序崩溃。