私のViewModelを機能させようとしているのですが、これまでのところうまくいきません。 Android StudioにエラーCannot resolve symbol 'ViewModelProviders'
が表示されます。
このトピックに関して私が見つけた他のすべての質問はextends Activity
をextends AppCompatActivity
に修正することでした、しかし、私は正しいものを拡張しています。何が足りないのかわからない….
私のコードは このYouTubeビデオに基づいています
MainActivity.Java
public class MainActivity extends AppCompatActivity implements
TileAdapter.TileAdapterOnClickHandler {
private BaseViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//set Toolbar
Toolbar myToolbar = findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
//initialize viewModel
viewModel = ViewModelProviders.of(this).get(BaseViewModel.class);
BaseViewModel.Java
public class BaseViewModel extends ViewModel {
private Movie[] mMovie;
public void init (Movie[] movies){
this.mMovie = movies;
}
public Movie[] getMovie() {
return mMovie;
}
私は自分のビルドに両方の依存関係がなかったので、問題があります。
implementation "Android.Arch.lifecycle:extensions:1.1.0"
implementation "Android.Arch.lifecycle:viewmodel:1.1.0"
ありがとう@Muthukrishnan Rajendran
androidx
を使用している場合は、これが必要です。
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
コンパイル済みのSDKバージョン28以降を使用している場合は、ViewModel
およびLiveData
を取得するために単一の依存関係を追加するだけで済みます。
dependencies {
//...
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "Android.Arch.lifecycle:extensions:$lifecycle_version"
}
Android公式ドキュメント からこの問題を解決します。以下をbuild.grale
に追加
def lifecycle_version = "2.0.0"
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
Build.gradleファイルで、dependenciesブロックにこれらの行を追加します。
dependencies {
...
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "Android.Arch.lifecycle:extensions:$lifecycle_version"
//if not using Java 8,use the following line
annotationProcessor "Android.Arch.lifecycle:compiler:$lifecycle_version"
//if using Java 8,ignore above line and add the following line
implementation "Android.Arch.lifecycle:common-Java8:$lifecycle_version"
...
}
プロジェクトのbuild.gradleにライブラリを追加する必要があります。
def lifecycle_version = "2.0.0"
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
androix
ライブラリを使う
変化する
implementation 'com.Android.support:appcompat-v7:28.0.0'
に
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
あなたが使用することができます
Refactor>Migrate to AndroidX