Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duvida em montar o metodo busca

bom dia galera, o metodo que estou tentando usar pra retornar a pesquisa e esse

 private List<Nota> pegaTodasNotas() {

        ListView lista = findViewById(R.id.lista_notas_recyclerview);
        RGeradordeBancodeDados geradordeBancodeDados = new RGeradordeBancodeDados();
        NotasDataBase dataBase = geradordeBancodeDados.gera(this);
        RNotaDao rNotaDao = dataBase.getNotaDao();
        List<Nota> notass = (List<Nota>) RNotaDao.todos();
        ArrayAdapter<Nota> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,notass);
        lista.setAdapter(adapter);


        /* NotaDAO dao = new NotaDAO();/*TENTANDO ALTERAR AQI ------------*/
       /* return dao.todos();*/

ele esta na minha listaActivity, mas o primeiro erro que tive foi :

rror: non-static method todos() cannot be referenced from a static context

e na minha interface RDAO esta assim:

@Dao
public interface RNotaDao {
    @Insert
    void insere(Nota nota);

    @Query("select * from nota")
     List<Nota>todos();

}

e se eu passar o "todos" pra statico ja da erro ... alguem sabe como posso resolver? rsrs

2 respostas

consegui resolver, na verdade eu nao me liguei que estava usando o recyclerview entao o metodo busca ficou assim.

private List<Nota> pegaTodasNotas() {

        RecyclerView recyclerView = findViewById(R.id.lista_notas_recyclerview);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setHasFixedSize(true);
        recyclerView.setAdapter(adapter);
        RGeradordeBancodeDados gerador = new RGeradordeBancodeDados();
        RNotaDao rNotaDao = (RNotaDao) gerador.gera(this).getNotaDao();
        return rNotaDao.todos();
solução!

Na realidade, seu erro estava nessa linha aqui:

List<Nota> notass = (List<Nota>) RNotaDao.todos();

Dá uma olhada que você estava chamando RNotaDao.todos(), mas todos() não é um método estático.

Mas veja que logo acima você tem a instância de RNotaDao:

RNotaDao rNotaDao = dataBase.getNotaDao();

Logo, é só fazer assim:

RNotaDao rNotaDao = dataBase.getNotaDao();
List<Nota> notass = (List<Nota>) rNotaDao.todos();

Note o r minúsculo, pois deve ser usada a instância de RNotaDao.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software