record count with Room and LiveData in android studio

1

How do I call this function in the viewmodel adapter:

@Query("select * from PRODUTO")
int getCountProdutos();

My viewmodel:

public class ProdutoListViewModel extends AndroidViewModel {

private final LiveData<List<PRODUTO>> itemAndPersonList;
private AppDatabase appDatabase;

  public ProdutoListViewModel(Application application) {
    super(application);
    this.Vid = Vid;
    appDatabase = AppDatabase.getDatabase(this.getApplication());
    itemAndPersonList = appDatabase.itemAndProdutoModel().getAllProdutoItems();
  }

I have tried in several ways:

    public long getCountProdutos(){
//        ProdutoModelDAO produtoModelDAO;
//        List<PRODUTO> dbproduto;
//        dbproduto = appDatabase.itemAndProdutoModel().getCountProdutos();

//        if(produtoModelDAO.getCountProdutos() != 0){
//            return produtoModelDAO.getCountProdutos();
//        }else{
//            return 0;
//        }
        return 0;
    }
    
asked by anonymous 28.05.2018 / 16:05

1 answer

1

What error are you getting? well I think you're trying to run the code in Main Thread , which Google does not recommend.

Try this:

    Executors.newSingleThreadExecutor().execute(new Runnable() {
        @Override
        public void run() {
            appDatabase.suaDao.getCountProdutos();
        }
    });
    
30.05.2018 / 03:43