2017-02-17 143 views
1

我遇到了一個問題我使用Glide從url加載圖片,但我需要進行驗證,如果徽標url爲null,則需要另一個url來獲取圖片,但它不是'牛逼的工作,我不知道爲什麼Glide無法從url加載圖片

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

      holder.mTitle.setText(premiumsList.get(position).getName()); 

      if(premiumsList.get(position).getLogo_url_string()==null){ 
      Glide.with(this.activity).load(premiumsList.get(position).getUrl()).into(holder.mImg); 
       Log.d("",String.valueOf(premiumsList.get(position).getUrl())); 
      } 
else{ 
      Glide.with(this.activity).load(premiumsList.get(position).getLogo_url_string()).into(holder.mImg); 
    } 
     } 
+0

是什麼this.activity?如果你在活動,你可以簡單地嘗試ActiivityName.this或如果你在片段只是嘗試getActivity() –

+0

你可以提供任何形式的logcat輸出,如果可能 – imaadhrizni

+0

它沒有區別:/ –

回答

0

編輯:請嘗試這一點,並提供堆棧跟蹤如果可能的話

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

    holder.mTitle.setText(premiumsList.get(position).getName()); 

    if(premiumsList.get(position).getUrl()!=null){ 

     Glide.with(this.activity).load(premiumsList.get(position).getUrl()) 
      .listener(new RequestListener<String, GlideDrawable>() { 
      @Override 
      public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
       Log.e("IMAGE_EXCEPTION", "Exception " + e.toString()); 
       return false; 
      } 

      @Override 
      public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
       Log.d("Sometimes the image is not loaded and this text is not displayed"); 
       return false; 
      } 
     }) 
     .into(holder.mImg); 
    } 
    else{  
     Glide.with(this.activity).load(premiumsList.get(position).getLogo_url_string()).into(holder.mImg); 
    } 
}  
+0

導致我的應用程序崩潰,該適配器將它傳遞給recylcler中的一個片段:/並且它只加載getUrl中的那些getLogo_url_string()確實會加載它們:/ –

+0

你也可以記錄getLogo_url_string @HeberSolis – imaadhrizni

+0

你是對的讓我試試這個哈哈,但我確定它和getUrl()是一樣的,因爲它也在cloudinary –

1

你必須照顧好小事情:

  1. 基於活動通行證正確的上下文/片段
  2. 使用.placeholder
  3. 用.error實現輕鬆識別問題
+0

我傳遞了更正的上下文,因爲來自Logo_string_url的顯示了它們,它只顯示getUrl中的那些,我很抱歉,但是如何使用其他的?我很抱歉,如果問題是愚蠢的,但我剛開始使用Glide,也是android:/ –

+0

下面是一個例子:https://stackoverflow.com/a/39789724/2162226 – gnB