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

A lista de alunos não aparece

package br.com.alura.agenda.dao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
import br.com.alura.agenda.modelo.Aluno;

/**
 * Created by julio.maggieri on 24/01/2018.
 */

public class AlunoDAO extends SQLiteOpenHelper {
    public AlunoDAO(Context context) {
        super(context, "Agenda", null, 1);
    }



    @Override
    public void onCreate (SQLiteDatabase db) {
        String sql = "CREATE TABLE Alunos (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereco TEXT, telefone TEXT, site TEXT, nota REAL);";
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS Alunos";
        db.execSQL(sql);
        onCreate(db);
    }

    public void insere(Aluno aluno)  {
        SQLiteDatabase db = getWritableDatabase();

        ContentValues dados = new ContentValues();
        dados.put("nome", aluno.getNome());
        dados.put("endereco", aluno.getEndereco());
        dados.put("telefone", aluno.getTelefone());
        dados.put("site", aluno.getSite());
        dados.put("nota", aluno.getNota());

        db.insert("Alunos", null, dados );
    }

    public List<Aluno> buscaAlunos()  {
        String sql = "SELECT * FROM Alunos;";
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql, null);

        List<Aluno> alunos = new ArrayList<Aluno>();
        while (c.moveToNext()) {
            Aluno aluno = new Aluno();
            aluno.setId(c.getLong(c.getColumnIndex("id")));
            aluno.setNome(c.getString(c.getColumnIndex("nome")));
            aluno.setEndereco(c.getString(c.getColumnIndex("endereco")));
            aluno.setTelefone(c.getString(c.getColumnIndex("telefone")));
            aluno.setSite(c.getString(c.getColumnIndex("site")));
            aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

            alunos.add(aluno);

        }
        c.close();

        return alunos;

    }
}
12 respostas

Fala ai Julio, de boa ?

Seu código está certo.

Consegue mostrar o código da sua ListaAlunosActivity ?

Olá Matheus,

Segue a ListaAlunoActivity:

package br.com.alura.agenda;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import java.util.List;

import br.com.alura.agenda.dao.AlunoDAO;
import br.com.alura.agenda.modelo.Aluno;

public class ListaAlunosActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista_alunos);



        Button novoAluno = (Button) findViewById(R.id.novo_aluno);
        novoAluno.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intentVaiProFormulario = new Intent(ListaAlunosActivity.this, FormularioActivity.class);
                startActivity(intentVaiProFormulario);
            }
        });

    }

    private void carregaLista() {
        AlunoDAO dao = new AlunoDAO(this);
        List<Aluno> alunos = dao.buscaAlunos();
        dao.close();

        ListView listaAlunos = (ListView) findViewById(R.id.lista_alunos);
        ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this, android.R.layout.simple_list_item_1, alunos);
        listaAlunos.setAdapter(adapter);
    }

    @Override
    protected void onResume() {
        super.onResume();
        carregaLista();
    }
}

Oi Julio,

Cara seu código tá certinho.

Pode testar em outro emulador e falar se o resultado muda ?

Eu estou testando no NOX e no meu celular, mas continua assim. Estou fazendo o Download dos SDK anteriores agora pois nem o projeto final disponibilizado na aula 1 está rodando diretamente. Assim que terminar eu testo e te aviso.

fico no aguardo :D

Matheus, vcs fazem algum acesso remoto?

Infelizmente não :(

Mas posso fazer o seguinte, coloca seu código no github, me passa o link e eu vejo se tá com o mesmo problema e tento ver se tem algum detalhe que não estamos enxergando .

Ah que ótimo Matheus,

segue o link:

https://github.com/juliocmmg/AgendaALURA

Julio, de boa ?

Cara testei seu código e olha só que interessante :

Está funcionando, não mexi em uma única linha de código.

Então deve ser alguma configuração no meu AS por ser mais novo??? Mesmo estando com as API 20 ate 25, não tem mais nada a ser configurado nele?

solução!

Eu uso a versão mais recente do android studio, mas como te disse, não mexi uma linha de código.

Acredito que alguma coisa tenha acontecido na hora de você mandar o apk para os celulares e ele não está mandando atualizado.

O que eu recomendo você a fazer é deletar e instalar de novo e ve se funciona.

Perfeito, deu certo!!! Muito obrigado Matheus! ;)

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