Hei, saya mencoba membuat ViewModel saya berfungsi, tetapi sejauh ini tidak berhasil. Android Studio menunjukkan kesalahan Cannot resolve symbol 'ViewModelProviders'
.
Setiap pertanyaan lain saya menemukan tentang topik ini mengoreksi extends Activity
untuk extends AppCompatActivity
, tapi saya memperpanjang tepat. Tidak yakin apa yang saya lewatkan ...
Kode saya didasarkan pada video YouTube ini
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;
}
import
pernyataan, atau Anda memilikinya tetapi tidak memiliki ketergantungan dalam penyiapan Gradle Anda.ViewModel
bawah paket yang berbeda dan dia mengimpornya dari sanaJawaban:
Saya tidak memiliki kedua dependensi dalam build saya, itulah masalahnya.
Terima kasih @Muthukrishnan Rajendran
sumber
Jika Anda menggunakan
androidx
Anda membutuhkan ini:sumber
Jika Anda menggunakan kompilasi sdk versi 28 atau lebih tinggi, Anda hanya perlu menambahkan satu dependecy untuk mendapatkan
ViewModel
danLiveData
sumber
android.arch.lifecycle:extensions
Anda dapat mencariextensions
di maven.google.com/web/index.html dan melihat versi terbaruMembuat instance viewmodel seperti ini:
sumber
Anda harus menambahkan pustaka di build.gradle proyek Anda
def lifecycle_version = "2.0.0"
sumber
Saya menyelesaikan masalah ini dari dokumentasi resmi Android . Tambahkan di bawah ke
build.grale
sumber
Dalam kasus saya (Android Studio 3.6.3),
AppCompatActivity
untuk berhasil melakukan:dibutuhkan kedua hal berikut:
(sendirian dengan
lifecycle-extentions
tidak cukup)sumber
Di file build.gradle, tambahkan baris ini di blok dependensi
sumber
Gunakan
androix
perpustakaanPerubahan
implementation 'com.android.support:appcompat-v7:28.0.0'
untuk
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
Kamu bisa memakai
sumber
Dalam implementasi "androidx.lifecycle: lifecycle-extensions: 2.2.0" dan yang lebih baru, ViewModelProviders tidak digunakan lagi, gunakan
atau di Kotlin
dari pada
sumber
- ' ViewModelProviders ' sekarang tidak digunakan lagi
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
var viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)
Referensi - https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders
sumber
Bekerja dengan baik di aplikasi saya (java) sebelumnya
berubah menjadi
semoga bisa membantu
sumber
Dalam Kasus Saya, saya menghadapi masalah di bawah ini yaitu:
Saya menambahkan dependensi di bawah ini dalam proyek saya build.gradle .
Kemudian saya membuat kelas saya dalam proyek modul dan saya menghadapi masalah ini, lalu saya menambahkan pustaka ini dalam file modul build.gradle dan masalah teratasi.
sumber
Saya memiliki masalah yang sama. Tidak ada solusi lain yang membantu saya.
Saya menyadari bahwa saya menggunakan
import androidx.lifecycle.ViewModelProvider;
bukannyaimport androidx.lifecycle.ViewModelProviders;
.Jadi, pastikan Anda menggunakan
import androidx.lifecycle.ViewModelProviders;
. ItuViewModelProviders
dengan sebuahs
.sumber