Я создаю класс, который расширяется от модели просмотра android, как в обучающем видео, которое я видел. Я пишу приведенный ниже код, но есть ошибка, и я не могу ее решить. Я искал в stackoverflow и нашел много ответов, но ни один из них не помог мне. Я попробовал модель просмотра android и модель необработанного представления, а также попытался получить экземпляр из android просмотреть фабрику модели, но ошибка все еще существует
это моя активность
public class MainActivity extends AppCompatActivity {
private NoteViewModel noteViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
noteViewModel = new ViewModelProvider(this).get(NoteViewModel.class);
noteViewModel.getAllNotes().observe(this, new Observer<List<Note>>() {
@Override
public void onChanged(List<Note> notes) {
Toast.makeText(MainActivity.this, "onChanged()", Toast.LENGTH_SHORT).show();
}
});
}
}
и это моя модель просмотра
public class NoteViewModel extends AndroidViewModel {
private NoteRepository noteRepository ;
private LiveData<List<Note>> allNotes;
public NoteViewModel(@NonNull Application application) {
super(application);
noteRepository = new NoteRepository(application);
allNotes = noteRepository.getAllNotes();
}
public void insert(Note note){
noteRepository.insert(note);
}
public void update(Note note){
noteRepository.update(note);
}
public void delete(Note note){
noteRepository.delete(note);
}
public void deleteAllNotes(){
noteRepository.deleteAll();
}
public LiveData<List<Note>> getAllNotes() {
return allNotes;
}
}
Это моя ошибка
Process: com.amehrvarz.architectureexample, PID: 25944
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.amehrvarz.architectureexample/com.amehrvarz.architectureexample.MainActivity}: java.lang.RuntimeException: Cannot create an instance of class com.amehrvarz.architectureexample.NoteViewModel
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.RuntimeException: Cannot create an instance of class com.amehrvarz.architectureexample.NoteViewModel
at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:221)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
at com.amehrvarz.architectureexample.MainActivity.onCreate(MainActivity.java:23)