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

ID sempre 0

Fiz o código perfeitamente como está no exercício mas não consigo fazer com que o id do aluno se altere, tentei incrementar "++" o id no método setId() mas não tive nenhuma mudança, não consigo entender o por que está acontecendo isso pois tenho o código escrito da mesma forma e quando adiciono alunos na agenda o primeiro sempre tem id 0, segundo também o terceiro e todos que virem depois, . bem espero ter sido claro na minha dúvida, não incluir o código pois não sei bem qual parte poderia está causando isso. Obrigado aguardo um help rs.

3 respostas

Oi Luan! Onde que está aparendo o id 0, é na lista de alunos mesmo?

Como que está a declaração do atributo id na sua classe Aluno? No seu método buscaAlunos() você está fazendo o aluno.setId(c.getLong(c.getColumnIndex("id")));?

abraços!

solução!

Olá Philippe, sim é na lista de alunos já rodando o app no androido, logo depois de adicionar os alunos, deixo a aplicação e volto pra atualizar o programa já que ainda me encontro nesta fase kk, e o programa atualiza como todos os alunos que adicionei mas com os "ids" sempre 0 para todos.

public class Aluno {
    private long Id;

//outros atributos    

    public long getId() {
        return Id;
    }

    public void setId(long id) {
        this.Id = id;
    }
//outros métodos

Esta é maneira como está implementado o atributo e métodos, e métdo buscaAlunos() logo abaixo.

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

Escrevi o comendo para criar uma TABLE errado, coloquei o id INTERGER, foram letras demais e me fizeram vasculhar o código inteiro. o certo seria INTEGER Obrigado.