Olá, pessoal.
Em um outro app que estou criando, precisava exatamente de um dialog como no projeto da aula. Aproveitando-o, ele funcionou para inserir um novo (salvar), mas está dando NEP para editar. Não estou entendendo o motivo.
Process: com.example.cadastrodevisita, PID: 31436
java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.cadastrodevisita.adapter.EmailEquipeAdapter$OnItemClickListener.onItemClick(int, com.example.cadastrodevisita.model.EmailEquipe)' on a null object reference
at com.example.cadastrodevisita.adapter.EmailEquipeAdapter$1.onClick(EmailEquipeAdapter.java:77)
public class EmailEquipeAdapter extends BaseAdapter {
private List<EmailEquipe> emailEquipes = new ArrayList<>();
private final Context context;
private final OnItemClickListener onItemClickListener;
private int posicao;
private EmailEquipe emailEquipe;
public EmailEquipeAdapter(Context context, OnItemClickListener onItemClickListener) {
this.context = context;
this.onItemClickListener = onItemClickListener;
}
public EmailEquipeAdapter(Context context, List<EmailEquipe> emailEquipes) {
this.emailEquipes = emailEquipes;
this.context = context;
this.onItemClickListener = null;
}
@Override
public int getCount() {
return emailEquipes.size();
}
@Override
public EmailEquipe getItem(int posicao) {
return emailEquipes.get(posicao);
}
@Override
public long getItemId(int posicao) {
return emailEquipes.get(posicao).getId();
}
@Override
public View getView(int posicao, View view, ViewGroup viewGroup) {
View viewCriada = criaView(viewGroup);
EmailEquipe emailDevolvido = emailEquipes.get(posicao);
this.posicao = posicao;
vincula(viewCriada, emailDevolvido);
return viewCriada;
}
private void vincula(View view, EmailEquipe emailEquipe) {
TextView email = view.findViewById(R.id.item_email_nome);
email.setText(emailEquipe.getEmail());
TextView unidade = view.findViewById(R.id.item_unidade);
unidade.setText(emailEquipe.getUnidade());
this.emailEquipe = emailEquipe;
configuraItemClique(view);
}
private void configuraItemClique(@NonNull View itemView) {
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener
.onItemClick(posicao, emailEquipe); //NEP BEM AQUI
}
});
}
private View criaView(ViewGroup viewGroup) {
return LayoutInflater
.from(context)
.inflate(R.layout.item_email_equipe, viewGroup, false);
}
public void atualiza(List<EmailEquipe> emailEquipes) {
this.emailEquipes.clear();
this.emailEquipes.addAll(emailEquipes);
notifyDataSetChanged();
}
public void remove(EmailEquipe emailEquipe) {
emailEquipes.remove(emailEquipe);
notifyDataSetChanged();
}
public List<EmailEquipe> getEmailEquipes() {
return emailEquipes;
}
public interface OnItemClickListener {
void onItemClick(int posicao, EmailEquipe emailEquipe);
}
}
Alguém conseguiria me auxiliar, por favor?