GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

ArrayList só carrega ultimo item do sqlite[RESOLVIDO]

java
android
Tags: #<Tag:0x00007f0c08578580> #<Tag:0x00007f0c08578440>

#1

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;
}

#2

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