2017-02-17 12 views
1

Ich habe ein Problem Ich lade Bild von der URL mit Glide, aber ich muss eine Validierung vornehmen, wenn eine Logo-URL null ist, dann eine andere URL nehmen, um das Bild zu erhalten, aber es ist nicht t arbeiten, und ich weiß nicht, warumGlide lädt kein Bild von der 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

was ist this.activity? Wenn Sie in Aktivität sind, können Sie einfach ActivityName.this versuchen oder wenn Sie in Fragment sind, versuchen Sie einfach getActivity() –

+0

Konnten Sie jede mögliche Form von logcat Ausgabe zur Verfügung stellen – imaadhrizni

+0

Es macht keinen Unterschied:/ –

Antwort

0

EDIT: Bitte versuchen Sie dies und geben Sie den Stack-Trace, wenn möglich

@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

das verursacht, dass meine Anwendung zum Absturz bringt, dass ich es an ein Fragment in einem recylcler übergebe:/und es lädt nur die von getUrl nicht die von getLogo_url_string() lädt sie:/ –

+0

könnten Sie auch die getLogo_url_string @HeberSolis Loggen – imaadhrizni

+0

Sie haben Recht lassen Sie mich versuchen, dass haha, aber ich bin sicher, dass es das gleiche wie getUrl() ist, weil es auch in Wolken –

1

Sie haben darauf achten, über kleine Dinge:

    richtigen Kontext
  1. Pass basierend auf Aktivität/Fragment
  2. Verwenden .placeholder
  3. Verwenden .error für leicht identifizieren Ausgabe
+0

Ich übergebe den richtigen Kontext, weil die von Logo_string_url sie zeigt, es zeigt nur nicht die von getUrl, tut mir leid, aber wie benutze ich die anderen? Es tut mir leid, wenn die Frage dumm ist, aber ich habe gerade begonnen, Glide und auch Android zu verwenden:/ –

+0

Hier ist ein Beispiel: https://Stackoverflow.com/a/39789724/2162226 – gnB