Это будет нормально работать:
1. Go в ваш build.gradle (Модуль: приложение) и добавьте это в зависимости:
`implementation "android.arch.lifecycle:extensions:$lifecycle_version"`
убедитесь, что у вас есть def lifecycle_version = "2.2.0"
в ваших зависимостях.
Так что это должно выглядеть так:
dependencies {
def lifecycle_version = "2.2.0" //make sure to have this
//Some implementations ...
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation "android.arch.lifecycle:extensions:$lifecycle_version" // make sure to have this too.
}
2. Go к вашей Деятельности (в вашем случае это Activity2
) и поместите эту строку:
eventViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(EventViewModel.class);
Ваш код должен выглядеть следующим образом:
public class Activity2 extends AppCompatActivity {
private EventViewModel eventViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
eventViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(EventViewModel.class);
eventViewModel.getAllEvents().observe(this, new Observer<List<Event>>() {
@Override
public void onChanged(List<Event> events) {
Toast.makeText(Activity2.this, "enjoy :)", Toast.LENGTH_SHORT).show();
}
});
}
}
3. Запустите приложение.