Я использую Glide для вставки изображения, запрашиваемого из Firestore через адаптер, который вызывается из фрагмента.
Я понятия не имею, что мне следует передать как Контекст . Я попытался getActivity (), чтобы получить родительскую активность, getContext () для вызывающего фрагмента, getApplicationContext (). Я даже пытался передать контекст из фрагмента при вызове адаптера безрезультатно. Я понятия не имею, как обойти это.
Помимо этого, я пытался получить контекст из viewGroup и itemView, так как они не будут нулевыми, и все же я получаю такие ошибки, как:
Вы не можете начать загрузку еще не прикрепленного представления или фрагмента, где getActivity () возвращает значение null (что обычно происходит при вызове getActivity () перед присоединением фрагмента или после уничтожения фрагмента).
Пожалуйста, помогите.
Вот мой адаптер:
public class RestaurantAdapter extends FirestoreRecyclerAdapter<RestaurantItems, RestaurantAdapter.RestaurantHolder> {
ImageView restaurantLogo;
public RestaurantAdapter(@NonNull FirestoreRecyclerOptions<RestaurantItems> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull RestaurantHolder holder, int position, @NonNull RestaurantItems model) {
holder.tvRestaurantName.setText(model.getRestaurantName());
holder.tvRestaurantAddress.setText(model.getRestaurantAddress());
holder.tvRestaurantDescription.setText(model.getRestaurantDescription());
Glide.with().load(model.getRestaurantLogo()).placeholder(R.drawable.restaurant_default).into(restaurantLogo);
}
@NonNull
@Override
public RestaurantHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.restaurant_card, viewGroup, false);
return new RestaurantHolder(view);
}
class RestaurantHolder extends RecyclerView.ViewHolder {
TextView tvRestaurantName, tvRestaurantAddress, tvRestaurantDescription;
ImageView tvRestaurantLogo;
public RestaurantHolder(@NonNull View itemView) {
super(itemView);
tvRestaurantName = itemView.findViewById(R.id.restaurant_name);
tvRestaurantAddress = itemView.findViewById(R.id.restaurant_address);
tvRestaurantDescription = itemView.findViewById(R.id.restaurant_description);
tvRestaurantLogo = itemView.findViewById(R.id.restaurant_logo);
}
}
}