Android 我们有没有办法在不替换片段的情况下替换单个片段的数据?
您可以在片段上创建一个方法,用于更新它,如果片段已经存在,则可以使用该方法 例如:Android 我们有没有办法在不替换片段的情况下替换单个片段的数据?,android,android-studio,android-fragments,fragment,android-fragmentactivity,Android,Android Studio,Android Fragments,Fragment,Android Fragmentactivity,您可以在片段上创建一个方法,用于更新它,如果片段已经存在,则可以使用该方法 例如: public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) { holder.tvItem.setText(itemList.get(position).getmTitle()); Picasso.get().load(itemList.get(position).geturl()).i
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);
}
});
}
}
希望有帮助 发布您的代码,我们将帮助您。我使用了一个片段,在单击recyclerview时显示数据。我想问一下,如果我们想在点击recyclerview时更新数据,但片段并没有被替换,那么它将如何完成?是否有我们使用的任何方法或界面?我已添加代码,请检查是否要在右键单击recyclerview项时更新数据?是,我要更新
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);
}
});
}
}