1
resposta

Bug em alterar dados

Boa tarde gente! O meu formulário em vez de alterar os dados ele adiciona um novo aluno. Creio que isso seja por conta da validação "if (aluno.getId() != null)...". Já tentei trocar a variável "id" para Long, mesmo assim não funcionou, então tentei utilizar "if(aluno.getId() != 0)... e não funciona... vou enviar as classes se voces puderem me ajudar ficaria muito grato!

Abraços

package br.com.malexander.agenda.modelo;

import java.io.Serializable;

public class Aluno implements Serializable {
    private long id;
    private String nome;
    private String endereco;
    private String telefone;
    private String site;
    private double nota;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getSite() {
        return site;
    }

    public void setSite(String site) {
        this.site = site;
    }

    public double getNota() {
        return nota;
    }

    public void setNota(double nota) {
        this.nota = nota;
    }

    @Override
    public String toString() {
        return getId() + ". " + getNome();
    }

}
package br.com.malexander.agenda;

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

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

public class formularioActivity extends AppCompatActivity {

    private formularioHelper helper;

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

        helper = new formularioHelper(this);


        Intent intent = getIntent();
        Aluno aluno = (Aluno) intent.getSerializableExtra("aluno" );
        if (aluno!= null){
            helper.preencheFormulario(aluno);
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_formulario, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){

            case R.id.menu_formulario_ok:

                Aluno aluno = helper.pegaAluno();
                AlunoDAO dao = new AlunoDAO(this);

                if (aluno.getId() != 0){
                    dao.altera(aluno);
                    Toast.makeText(formularioActivity.this, "Aluno " + aluno.getNome() + " editado" , Toast.LENGTH_SHORT).show();
                } else {
                    dao.insere(aluno);
                    Toast.makeText(formularioActivity.this, "Aluno " + aluno.getNome() + " salvo" , Toast.LENGTH_SHORT).show();
                }

                dao.close();

                finish();
                break;
        }

        return super.onOptionsItemSelected(item);
    }
}

1 resposta

o erro provavelmenteestá nos ids dos alunos que não estão sendo setados e por padrão fica 0, faz um teste para mostrar os ids dos alunos, provalvemente todos estarão zerados, por isso cai na condição de adicionar!! abraço.

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