[英]Open a new fragment and pass data when click on my Recycler CardView Grid?
[英]How to pass data to fragment when click on cardview in onBindViewHolder?
這是我的適配器代碼,我想將數據傳遞給“ParticularFragment” 注意:ParticularFragment擴展了Fragment
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);
}
}
}
在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;
至
private Activity context;
並且作為TopicsAdapter構造函數的參數從您的片段傳遞getActivity()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.