Diese Klasse verwendet das Repository Klasse um Daten aus der Datenbank ab zu fragen und zu ändern. Zudem Speichert es Ergebnisse in LiveData oder MutableLiveData Objekten.

Beispiel:

import android.app.Application;  
  
import androidx.annotation.NonNull;  
import androidx.lifecycle.AndroidViewModel;  
import androidx.lifecycle.LiveData;  
import androidx.lifecycle.MutableLiveData;  
import java.util.List;  
  
public class MainViewModel extends AndroidViewModel{  
    private ArticleRepository repository;  
    private LiveData<List<Article>> allArticles;  
    private MutableLiveData<List<Article>> searchResults;  
  
    public MainViewModel (Application application) {  
        super(application);  
        repository = new ArticleRepository(application);  
        allArticles = repository.getAllArticles();  
        searchResults = repository.getSearchResults();  
    }  
    
    MutableLiveData<List<Article>> getSearchResults() {  
        return searchResults;  
    }  
    
    LiveData<List<Article>> getAllArticles() {  
        return allArticles;  
    }  
    
    public void insertArticle(Article article) {  
        repository.insertArticle(article);  
    }  
    
    public void findArticle(String name) {  
        repository.findArticle(name);  
    }  
    
    public void deleteArticle(String name) {  
        repository.deleteArticle(name);  
    }  
}