1
resposta

Erro ao salvar um um campo int

Boa tarde estou criando um aplicativo parecido com que esta sendo apresentado em aula com a diferença que o meu exibe a idade, criei os campos como int e fiz as tratativas conforme o código abaixo, ele salva perfeitamente mas na hora de alterar ou listar ele não exibe a idade conforme digitada.

//Model
public class Paciente implements Serializable {

    private Long id;
    private String nome;
    private int idade;
    private String contato;
    private String familiar;
    private String responsavel;
    private String  caminhoImagem;


    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 int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getContato() {
        return contato;
    }

    public void setContato(String contato) {
        this.contato = contato;
    }

    public String getFamiliar() {
        return familiar;
    }

    public void setFamiliar(String familiar) {
        this.familiar = familiar;

    }

    public String getResponsavel() {
        return responsavel;
    }

    public void setResponsavel(String responsavel) {
        this.responsavel = responsavel;
    }



    public String getCaminhoImagem (){ return caminhoImagem;}

    public void setCaminhoImagem(String caminhoImagem){this.caminhoImagem = caminhoImagem;}

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


}

//formularioHelper
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.EditText;
import android.widget.ImageView;

import itech.studio.com.itech.modelo.Paciente;

public class FormularioHelper {

    private EditText contatoPaciente;
    private EditText idadePaciente;
    private EditText familiarPaciente;
    private EditText nomePaciente;
    private EditText responsavelPaciente;
    private Paciente paciente;
    private ImageView campoImagem;

    public FormularioHelper(FormularioActivity fActivity){

       nomePaciente = (EditText)fActivity.findViewById(R.id.paciente_nome);
       idadePaciente = (EditText)fActivity.findViewById(R.id.paciente_idade);
       familiarPaciente = (EditText)fActivity.findViewById(R.id.paciente_familiar);
       contatoPaciente = (EditText)fActivity.findViewById(R.id.paciente_contato);
       responsavelPaciente = (EditText) fActivity.findViewById(R.id.paciente_responsavel);
       campoImagem = (ImageView)fActivity.findViewById(R.id.paciente_imagem);
        paciente = new Paciente();

    }

    public Paciente buscaPaciente() {
       paciente.setNome(nomePaciente.getText().toString());
       paciente.setIdade(Integer.parseInt(idadePaciente.getText().toString()));
       paciente.setFamiliar(familiarPaciente.getText().toString());
       paciente.setContato(contatoPaciente.getText().toString());
       paciente.setResponsavel(responsavelPaciente.getText().toString());
       paciente.setCaminhoImagem((String) campoImagem.getTag());
       return paciente;
    }

    public void preencheFormulario(Paciente paciente) {
        nomePaciente.setText(paciente.getNome());
        idadePaciente.setText(String.valueOf(paciente.getIdade()));
        familiarPaciente.setText(paciente.getFamiliar());
        contatoPaciente.setText(paciente.getContato());
        responsavelPaciente.setText(paciente.getResponsavel());
        carregaImagem(paciente.getCaminhoImagem());
        this.paciente = paciente;
    }


    //carrega a imagem
    public void carregaImagem(String caminhoImagem) {
        if(caminhoImagem != null) {
            Bitmap bitmap = BitmapFactory.decodeFile(caminhoImagem);
            Bitmap bitmapTamanhoImagem = Bitmap.createScaledBitmap(bitmap, 300, 300, true); // Define o tamanho das imagem
            campoImagem.setImageBitmap(bitmapTamanhoImagem);
            campoImagem.setScaleType(ImageView.ScaleType.FIT_XY);
            campoImagem.setTag(caminhoImagem);
        }
    }
}
1 resposta

Fala ai, de boa ?

Toda vez que você quer mostrar, o Android usa o setText que recebe um inteiro, que é uma referencia as constantes de texto do aplicativo, o que deve estar gerando o seu erro.

Você vai precisar fazer um String.valueOf

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