Android 在onBindViewHolder中单击cardview时,如何将数据传递给fragment?

Android 在onBindViewHolder中单击cardview时,如何将数据传递给fragment?,android,android-fragments,android-recyclerview,android-cardview,android-cards,Android,Android Fragments,Android Recyclerview,Android Cardview,Android Cards,这是我的适配器代码,我想将数据传递给“SpecificularFragment” 注意:特殊片段扩展片段 public class TopicsAdapter extends RecyclerView.Adapter<TopicsAdapter.ViewHolder> { private Context context; private ArrayList<QuoteItems> itemList; public TopicsAdapter(C

这是我的适配器代码,我想将数据传递给“SpecificularFragment” 注意:特殊片段扩展片段

public class TopicsAdapter extends RecyclerView.Adapter<TopicsAdapter.ViewHolder> {

    private Context context;
    private ArrayList<QuoteItems> itemList;

    public TopicsAdapter(Context context, ArrayList<QuoteItems> itemList) {
        this.context = context;
        this.itemList = itemList;
    }

    @Override
    public TopicsAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.adapter_topics_recycler_view_items, viewGroup, false);
        ViewHolder viewHolder = new ViewHolder(v);

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(final TopicsAdapter.ViewHolder viewHolder, int i) {

        final QuoteItems quoteItems = itemList.get(i);
        viewHolder.txtQuote.setText(quoteItems.getQuote());

        viewHolder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

             //how to pass data to "ParticularFragment" from here
            }
        });
    }

    @Override
    public int getItemCount() {
        return itemList.size();
    }
    class ViewHolder extends RecyclerView.ViewHolder {

        public TextView txtQuote;
        public CardView cardView;

        public ViewHolder(View itemView) {
            super(itemView);
            txtQuote = (TextView) itemView.findViewById(R.id.txtQuote);
            cardView = (CardView) itemView.findViewById(R.id.cardView);
        }
    }
}
公共类TopicsAdapter扩展了RecyclerView.Adapter{
私人语境;
私有arraylistitemlist;
公共TopicsAdapter(上下文,ArrayList itemList){
this.context=上下文;
this.itemList=itemList;
}
@凌驾
public TopicsAdapter.ViewHolder onCreateViewHolder(视图组视图组,int i){
视图v=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.adapter\u topics\u recycler\u View\u items,viewGroup,false);
视窗夹持器视窗夹持器=新视窗夹持器(v);
返回视图持有者;
}
@凌驾
BindViewHolder上的公共无效(最终TopicsAdapter.ViewHolder ViewHolder,int i){
final QuoteItems QuoteItems=itemList.get(i);
viewHolder.txtQuote.setText(quoteItems.getQuote());
viewHolder.cardView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//如何从这里将数据传递到“SpecialFragment”
}
});
}
@凌驾
public int getItemCount(){
返回itemList.size();
}
类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图txtQuote;
公共卡视图卡视图;
公共视图持有者(视图项视图){
超级(项目视图);
txtQuote=(TextView)itemView.findViewById(R.id.txtQuote);
cardView=(cardView)itemView.findViewById(R.id.cardView);
}
}
}

在onclick中添加以下代码

ReciverFragment fragment = new ReciverFragment(); 
Bundle args = new Bundle();
args.putString("Your_Key", "Your_Value");
fragment.setArguments(args);
//Inflate the fragment
context.getFragmentManager().beginTransaction().add(R.id.container, fragment).commit();
注:更改

private Context context;


作为TopicsAdapter构造函数的参数,从片段中传递getActivity()。

谢谢您的帮助,请告诉我如何在此处输入片段?还有一件事是,在“R.id.container”中显示错误。这是您在布局文件中获取的布局id(在您的情况下可能是FrameLayout)
private Activity context;