public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {
holder.tvItem.setText(itemList.get(position).getmTitle());
Picasso.get().load(itemList.get(position).geturl()).into(holder.imgFlag);
final ModelClass model= itemList.get(position);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DataFragment dataFragment= new DataFragment();
((AppCompatActivity)mContext).getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment,dataFragment)
.commit();
Bundle bundle= new Bundle();
bundle.putSerializable("model", model);
dataFragment.setArguments(bundle);
}
});
}
}
您可以在片段上创建用于更新它的方法,如果该片段已经存在,请使用该方法。
示例:
public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {
holder.tvItem.setText(itemList.get(position).getmTitle());
Picasso.get().load(itemList.get(position).geturl()).into(holder.imgFlag);
final ModelClass model= itemList.get(position);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Activity activity = ((AppCompatActivity)mContext);
Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.fragment);
// Check if the fragment already exists, if so, just update it
if (fragment != null) {
DataFragment dataFragment = (DataFragment) fragment;
dataFragment.replaceData(model);
}
else { // Create new instance
DataFragment dataFragment= new DataFragment();
activity.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment,dataFragment)
.commit();
Bundle bundle = new Bundle();
bundle.putSerializable("model", model);
dataFragment.setArguments(bundle);
}
});
}
}
希望有帮助!