2016-11-10 3 views
1

Что я пытаюсь сделать, это отображать изображения с использованием URL-адреса изображения, и я использую библиотеку glide для загрузки этих изображений, но всякий раз, когда я пытаюсь запустить приложение, изображения не могут показывать или не загружать активность. Я в состоянии увидеть текст отображается, но не изображенияОшибка загрузки URL-адреса изображения с помощью Glide

Это ошибка, я получаю

java.lang.IllegalArgumentException: You cannot start a load on a null Context 
11-11 03:23:01.713 5428-5428/? W/System.err:  at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:84) 
11-11 03:23:01.713 5428-5428/? W/System.err:  at com.bumptech.glide.Glide.with(Glide.java:629) 

Это код

public class SampleAdapter extends RecyclerView.Adapter <SampleAdapter.ViewHolder> { 

    private List<SampleModel> list; 
    private Context mContext = null; 

    public SampleAdapter(List<SampleModel> sampleModelList) { 
     this.list = sampleModelList; 
    } 

    @Override 
    public SampleAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample_item, parent, false); 
     return new ViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(WatchlistAdapter.ViewHolder holder, int position) { 

     String image = "https://image.tmdb.org/t/p/w500/9HE9xiNMEFJnCzndlkWD7oPfAOx.jpg"; 

     try{ 
       final SampleModel sample = list.get(holder.getAdapterPosition()); 

       if(sample != null) { 
       holder.title.setText(sample.getTitle()); 
       Glide.with(mContext).load(image) 
        .placeholder(R.drawable.placeholder) 
        .dontAnimate() 
        .fitCenter() 
        .crossFade() 
        .diskCacheStrategy(DiskCacheStrategy.ALL) 
        .into(holder.cover); 
      } else { 
       Glide.clear(holder.cover); 
      } 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public int getItemCount() { 
     return (list != null? list.size():0); 
    } 

    public class ViewHolder extends RecyclerView.ViewHolder { 

     public TextView title; 
     public ImageView cover; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      title = (TextView) itemView.findViewById(R.id.title); 
      cover= (ImageView) itemView.findViewById(R.id.coverImage); 
     } 
    } 
+1

Проверьте свой mContext. Вероятно, вы не инициализировали контекст должным образом и, следовательно, это значение null, которое вызывает проблему. – oathkeeper

+0

@oathkeeper Я обновил свой код. пожалуйста, проверьте – BXUMZSE

ответ

0

сделать это:

public SampleAdapter(List<SampleModel> sampleModelList, Context context) { 
    this.list = sampleModelList; 
    mContext = context ; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^