Counting records with Room and Livedata in android studio

Asked

Viewed 51 times

1

How I call this function in 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’ve tried many 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;
    }

1 answer

1


What error are you getting ? well it seems to me that you are trying to run the code on Main Thread, which Google does not recommend.

Try it this way:

    Executors.newSingleThreadExecutor().execute(new Runnable() {
        @Override
        public void run() {
            appDatabase.suaDao.getCountProdutos();
        }
    });

Browser other questions tagged

You are not signed in. Login or sign up in order to post.