How to call getFragmentManager on Recycler.Adapter?

前端 未结 9 2127
执笔经年
执笔经年 2020-12-23 16:22

I am converting ListView of my app to RecyclerView. On ListView, it was very easy to implement OnClickListener but in RecyclerView, we have to do it in adapter. I want to op

9条回答
  •  悲哀的现实
    2020-12-23 17:11

    Best option would probably be to have the Fragment that instantiates the RecyclerAdapter to implement and interface like this:

    public class MyRecyclerAdapter extends Adapter {
    
         private ItemType[] mItems;
         private MRAItemClickedListener mListener;
    
         public MyRecyclerAdapter(Context ctx, MRAItemClickedListener listener){
    
            mListener = listener;
            ...
         }
    
         @Override
         public void onBindViewHolder(ViewHolder holder, int position) {
             holder.itemView.setOnClickListener(new OnClickListener(){
                 @Override
                 public void onClick(View v) {
                      mListener.onItemClicked(mItems[position]);
                 }
             });
         }
    
         interface MRAItemClickedListener {
             void onItemClicked(ItemType item);
         }
    
    }
    
    public class MyFragment ... implements MRAItemClickedListener {
    
        public void onItemClicked(ItemType item){
              // do stuff with item
        }
    
    }
    

提交回复
热议问题