Tengo un caso de uso en el que necesito una referencia al padre RecyclerViewdesde el interior del adaptador, específicamente dentro del onBindViewHoldermétodo. Hasta ahora, lo que estoy haciendo es asignarlo a un miembro de la clase privada en el onCreateViewHoldermétodo que pasa a lo largo del viewGroup parentargumento así:
private ViewGroup mParent;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// inflater logic.
mParent = parent;
}
Y haciendo referencia al padre RecyclerViewde onBindViewHolderesta manera:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// binder logic.
((RecyclerView)mParent).blahBlahBlah();
}
¿Existe una forma mejor de hacer esto? ¿Quizás RecyclerView.Adaptertiene un camino que quizás me haya perdido?

Otra forma es pasar una referencia en el constructor, por ejemplo
public final class MyAdapter extends RecyclerView.Adapper { private final recyclerView; public MyAdapter(@NonNull RecyclerView recyclerView) { this.recyclerView = recyclerView; } ... @Override public void onBindViewHolder(ViewHolder holder, int position) { ... } }fuente