1
resposta

estou tomando NullpointerException ao vincular informações

*Mensagem de erro * E/AndroidRuntime: FATAL EXCEPTION: main

 Process: com.example.agenda, PID: 7935
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.agenda.model.Telefone.getNumero()' on a null object reference
        at com.example.agenda.ui.adapter.ListaAlunoAdapter.vinculaTextView(ListaAlunoAdapter.java:61)
        at com.example.agenda.ui.adapter.ListaAlunoAdapter.getView(ListaAlunoAdapter.java:52)

Código ListaAlunoAdapter

package com.example.agenda.ui.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.agenda.R;
import com.example.agenda.database.AgendaDataBase;
import com.example.agenda.database.dao.TelefoneDAO;
import com.example.agenda.model.Aluno;
import com.example.agenda.model.Telefone;

import java.util.ArrayList;
import java.util.List;

public class ListaAlunoAdapter extends BaseAdapter {

    private final TelefoneDAO dao;

    public ListaAlunoAdapter(Context context) {
        dao = AgendaDataBase.getInstance(context)
                .getTelefoneDAO();
        this.context = context;
    }

    List<Aluno> alunos = new ArrayList<>();
    private Context context;

    @Override
    public int getCount() {
        return alunos.size();
    }

    @Override
    public Aluno getItem(int position) {
        return alunos.get(position);
    }

    @Override
    public long getItemId(int position) {
        return alunos.get(position).getId();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View viewCriada =
                LayoutInflater.from(context)
                        .inflate(R.layout.item_aluno, parent, false);
        Aluno alunoDevolvido = alunos.get(position);
        vinculaTextView(viewCriada, alunoDevolvido);
        return viewCriada;
    }

    private void vinculaTextView(View viewCriada, Aluno aluno) {
        TextView nome = viewCriada.findViewById(R.id.item_aluno);
        nome.setText(aluno.getNomeCompleto());
        TextView telefone = viewCriada.findViewById(R.id.item_telefone);
        Telefone primeiroTelefone = dao.buscaPrimeiroTelefoneDoAluno(aluno.getId());
        telefone.setText(primeiroTelefone.getNumero());
    }



    public void atualiza(List<Aluno> alunos) {
        this.alunos.clear();
        this.alunos.addAll(alunos);
        notifyDataSetChanged();
    }
    public void remove(Aluno aluno) {
        alunos.remove(aluno);
        notifyDataSetChanged();
    }
}
1 resposta

Fala Ricardo! De boa ?

Cara aparentemente você tá usando algum objeto nulo, no caso, algum telefone está nulo.

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