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

Erro .toString() ao converter long

Olá estou com um problema , não estou entendo o porque de não esta aceitando o .toString() para converter um valor que tenho em long, segue em anexo o código, esta no método deletar que é do video 5.1.

package br.com.alura.agenda.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.br.com.alura.modelo.Aluno;

/* Created by Fabgiese on 27/10/2015. */ public class AlunoDAO extends SQLiteOpenHelper {

public AlunoDAO(Context context) { super(context, "Agenda", null, 2); }

@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);"; db.execSQL(sql); }

@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 buscaAlunos() { SQLiteDatabase db = getReadableDatabase() ; Cursor c = db.rawQuery("SELECT * FROM Alunos;", null); List alunos = new ArrayList<>();

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

public void deleta(Aluno aluno) { SQLiteDatabase db = getWritableDatabase(); String[] params = {aluno.getId().toString()}; db.delete("Alunos", "id = ?", params); } }

2 respostas
solução!

Oi Fabricio,

Tenta utilizar o toString da classe Long, como no exemplo abaixo.

Long.toString(aluno.getId())

Funcionou, muito obrigado pela dica.

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