Olá, estou com problemas na hora de implementar o listener customizado na RecyclerView, como feito em aula o listener é aplicado dentro da classe ViewHolder (NotaViewHolder) onde é setado um clickListener no itemView e usando a referência da interface OnItemClickListener é retornado um NullPointer, a unica diferença em meu projeto com o do instrutor é que minha classe ViewHolder está separada do Adapter, porém a implementação é a mesma.
Segue o código do ViewHolder:
class NotaViewHolder extends RecyclerView.ViewHolder {
private final TextView TITULO;
private final TextView DESCRICAO;
private OnItemClickListener onItemClickListener;
public NotaViewHolder(View viewCriada) {
super(viewCriada);
TITULO = itemView.findViewById(R.id.item_nota_titulo);
DESCRICAO = itemView.findViewById(R.id.item_nota_descricao);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onItemClick(); //Linha que retorna o NullPointer
}
});
}
Código do Adapter:
private final List<Nota> notas;
private final Context context;
private OnItemClickListener onItemClickListener;
public ListaNotasAdapter(Context context, List<Nota> notas){
this.context = context;
this.notas = notas;
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener){
this.onItemClickListener = onItemClickListener;
}
@Override
public NotaViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View viewCriada = LayoutInflater.from(context).
inflate(R.layout.item_nota, parent, false);
return new NotaViewHolder(viewCriada);
}
@Override
public void onBindViewHolder(NotaViewHolder holder, int position) {
Nota nota = this.notas.get(position);
holder.PreencherCampo(nota);
}
@Override
public int getItemCount() {
return this.notas.size();
}
public void adciona(Nota notaRecebida) {
this.notas.add(notaRecebida);
notifyDataSetChanged();
}
}
Vale ressaltar que em todos os campos de referências da interface OnItemClickListener, o Android diz que este campo nunca foi acessado. Espero que tenha ficado claro meu problema, talvez seja algo simples de resolver, Obrigado!