Reputation: 53
i'm using recyclerview to show a list of members, there task and there profile picture but whenever i go to another fragment and get back to it quickly i get
You cannont start a load for destroyed activity com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:317)
and here is my adapter code
public class MembersAdapter extends FirestorePagingAdapter<MembersModel, MembersAdapter.MembersViewHolder> {
public MembersAdapter(FirestorePagingOptions<MembersModel> options) {
super(options);}
@Override
protected void onBindViewHolder(@NonNull MembersViewHolder holder, int position, @NonNull MembersModel membersModel) {
holder.tvmembername.setText(membersModel.getName());
holder.tvtask.setText(membersModel.getTask());
String imgPath = "images/"+membersModel.getUid()+".jpeg";
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
StorageReference imageRef = storageRef.child(imgPath);
Glide.with(holder.VmemBpic.getContext())
.load(imageRef)
.circleCrop()
.format(DecodeFormat.PREFER_RGB_565)
.placeholder(R.drawable.ic_user)
.into(holder.VmemBpic);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppCompatActivity activity = (AppCompatActivity) v.getContext();
activity.getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, new UserFragment(membersModel.getName(), membersModel.getTask(), membersModel.getPurl(), membersModel.getDesc(), membersModel.getLinkedinurl(), membersModel.getInstagramurl(), membersModel.getGithuburl(), membersModel.getEmail(), membersModel.getUid()))
.addToBackStack("user").commit();
}
});
}
@Override
protected void onLoadingStateChanged(@NonNull LoadingState state) {
super.onLoadingStateChanged(state);
switch (state){
case LOADED:
break;
case ERROR:
break;
case FINISHED:
break;
case LOADING_MORE:
break;
case LOADING_INITIAL:
break;
}
}
@NonNull
@Override
public MembersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_member, parent, false);
return new MembersViewHolder(view);
}
public class MembersViewHolder extends RecyclerView.ViewHolder{
private TextView tvmembername,tvtask;
private ImageView VmemBpic;
public MembersViewHolder(@NonNull View itemView) {
super(itemView);
tvmembername = itemView.findViewById(R.id.xtvmembername);
tvtask = itemView.findViewById(R.id.xtvtask);
VmemBpic = itemView.findViewById(R.id.xmemBpic);
}
}
}
Upvotes: 0
Views: 604
Reputation: 8897
Use getApplicationContext()
in Glide.with(YOUR_CONTEXT_HERE)
or you can pass the Context
object through your Adapter
constructor.
Upvotes: 1