У меня есть фрагмент, который отображает самые последние изображения пользователей на их устройствах. Однако это обновляется только тогда, когда пользователь смахивает от фрагмента и возвращается к нему. Я хотел бы сделать так, чтобы изображения обновлялись после того, как снимок сделан автоматически (не нужно смахивать и возвращаться к фрагменту). Как я могу go сделать это?
Код адаптера:
public class RecentPhotosAdapter extends RecyclerView.Adapter < RecentPhotosAdapter.ViewHolder > {
// Variables
private Context mContext;
private ArrayList < String > mImage;
private int VIEW_TYPE_DEFAULT = 0;
private int VIEW_TYPE_IMAGE = 1;
// Limit the recent photo selection
int RECENT_PHOTO_LIMIT = 7;
public RecentPhotosAdapter(Context mContext, ArrayList < String > mImage) {
this.mContext = mContext;
this.mImage = mImage;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == VIEW_TYPE_IMAGE) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recent_photos_item, parent, false);
return new ViewHolder(view);
} else {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.default_select_photos_item, parent, false);
return new ViewHolder(view);
}
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
if (position < Math.min(mImage.size(), RECENT_PHOTO_LIMIT)) {
String images = mImage.get(position);
// Recent Photos
Glide.with(mContext)
.load(images)
.placeholder(R.drawable.background_gallery_placeholder)
.transform(new CenterCrop(), new RoundedCorners(30))
.into(holder.recent_photos_iv);
// Default select photos
holder.recent_photos_iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Open horizontalScrollGallery
Intent intent = new Intent(mContext, HorizontalScrollGalleryActivity.class);
intent.putExtra("position", String.valueOf(position));
mContext.startActivity(intent);
}
});
} else {
holder.default_select_photo_iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Open SelectImageActivity onClick
Intent intent = new Intent(mContext, SelectImageActivity.class);
mContext.startActivity(intent);
}
});
// Open SelectImageActivity when user scrolls to the end of recent images
Intent intent = new Intent(mContext, SelectImageActivity.class);
mContext.startActivity(intent);
}
}
@Override
public int getItemViewType(int position) {
return (position == Math.min(mImage.size(), RECENT_PHOTO_LIMIT)) ? VIEW_TYPE_DEFAULT : VIEW_TYPE_IMAGE;
}
@Override
public int getItemCount() {
return Math.min(mImage.size(), RECENT_PHOTO_LIMIT) + 1;
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView recent_photos_iv;
ImageView default_select_photo_iv;
public ViewHolder(View itemView) {
super(itemView);
recent_photos_iv = itemView.findViewById(R.id.recent_photos_iv);
default_select_photo_iv = itemView.findViewById(R.id.default_select_photo_iv);
}
}
}