RepositoryImplementationExampleImplementationimplementation"androidx.lifecycle:lifecycle-viewmodel:2.2.0"InterfacepublicinterfaceDummyRepository { LiveData<String> getStringRepository(); }Repository ImplementationpublicclassDummyRepositoryImplimplementsDummyRepository{ publicDummyRepositoryImpl() { } @OverridepublicLiveData<String> getStringRepository() { MutableLiveData<String> str = newMutableLiveData<>(); str.setValue("String From DummyRepositoryImpl"); returnstr; } }ViewModelpublicclassMainVMextendsViewModel { DummyRepositoryImplrepository; publicMainVM() { repository = newDummyRepositoryImpl(); } publicLiveData<String> getData(){ returnrepository.getStringRepository(); } }MainActivityMainVMviewModel = newViewModelProvider(this).get(MainVM.class); viewModel.getData().observe(this, newObserver<String>() { @OverridepublicvoidonChanged(Strings) { Log.d(TAG, "onChanged: "+s); } });Copyright 2020 M. Fadli Zein