Is there a better way of getting a reference to the parent RecyclerView from the adapter?

前端 未结 2 1763
傲寒
傲寒 2021-01-31 00:55

I have a use case where I need a reference to the parent RecyclerView from inside the adapter, specifically inside the onBindViewHolder method. So far

相关标签:
2条回答
  • 2021-01-31 01:34

    Another way is passing a reference in the constructor, e.g.

    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) {
            ...
        }
    }
    
    0 讨论(0)
  • 2021-01-31 01:37

    There's actually a specific method that callsback with the RecyclerView that attaches to the adapter. Just override the onAttachedToRecylerView(RecyclerView recyclerView) method.

    public class Adapter_RV extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    
        RecyclerView mRecyclerView; 
    
    
        @Override
        public void onAttachedToRecyclerView(RecyclerView recyclerView) {
            super.onAttachedToRecyclerView(recyclerView);
    
            mRecyclerView = recyclerView;
        }
    
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return null;
        }
    
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    
            mRecyclerView....
        }
    
    0 讨论(0)
提交回复
热议问题