ArrayList só carrega ultimo item do sqlite[RESOLVIDO]

1 resposta
androidjava
K

Boa noite,

estou fazendo um app de controle dos meus gastos, porem estou com um problema na hora de passar os dados do banco de dados para a ArrayList. Aparentemente a ArrayList esta carregando comente o ultimo item cadastrado no banco de dados, conforme a figura abaixo. Se que ele esta inserindo corretamente os dados no SQLite por que os valores quando vou somar estão sendo mostrado corretamente, então acho que e na ArrayList.


Aqui está a minha classe principal

DAO_Caixa dao_caixa = new DAO_Caixa(this);

ArrayList lista_entrada = new ArrayList();

lista_entrada=dao_caixa.getListaEntradas();

ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,lista_entrada);

listaEntrada.setAdapter(adapter);

String totalEntrada = dao_caixa.getTotalEntrada();

totalEntradas = (TextView) findViewById(R.id.totalEntrada);

totalEntradas.setText(totalEntrada);

A seguir a classe que passa para o formato String

public ArrayList getListaEntradas(){

ArrayList lista_entrada = new ArrayList();

dao = new DAO();

controladorBanco = new ControladorBanco(context);

ArrayList lista_dados =  controladorBanco.getListaEntrada();

for(int count = 0; count<lista_dados.size();count++){

String frase = lista_dados.get(count).getDescricao() + "     |     R$" +

lista_dados.get(count).getValor() + "     |     " +

lista_dados.get(count).getData();

lista_entrada.add(frase);

}

return lista_entrada;

}

E finalmente a classe que busca os itens no banco de dados

public ArrayList<DAO> getListaEntrada() {
    dao = new DAO();
    ArrayList<DAO> lista = new ArrayList<DAO>();
    db = criarBanco.getReadableDatabase();
    Cursor cursor = db.query(true,criarBanco.getTabela(),new String[]{criarBanco.NOME_PRODUTO, criarBanco.VALOR, criarBanco.DATA},"tipo = ?",new String[]{"ENTRADA"},null,null,null,null);
    if(cursor.moveToFirst()){

        do {
            dao.setDescricao(cursor.getString(0));
            dao.setValor(cursor.getDouble(1));
            dao.setData(cursor.getString(2));
            lista.add(dao);
        }while ((cursor.moveToNext()));
    }
    db.close();
    return lista;
}

1 Resposta

S

Você sempre está inserindo o mesmo objeto dao na lista.

Criado 13 de julho de 2018
Ultima resposta 15 de jul. de 2018
Respostas 1
Participantes 2