Do not load the image with Picasso in my RecyclerView

2

I'm trying to upload an image with Picasso in the onBindViewHolder () method, but I do not load it. Everything works except that.

package com.example.oftecnica2.myapplication;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

import java.util.ArrayList;

import butterknife.Bind;
import butterknife.ButterKnife;


public class Adaptador extends      RecyclerView.Adapter<Adaptador.NuevoViewHolder> {
 LayoutInflater inflater;
 ArrayList<Comunicado>comunicados;
Context context;


public Adaptador(Context context,ArrayList<Comunicado> comunicados) {
    inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.comunicados = comunicados;
    this.context=context;
    System.out.println("AQUIIIIII");
    System.out.println(comunicados.get(0).toString());
}

@Override
public NuevoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v =inflater.inflate(R.layout.row_anime,null);
    return new NuevoViewHolder(v);
}

@Override
public void onBindViewHolder(NuevoViewHolder holder, int position) {
    System.out.println("POSICION:         "+position);
    Comunicado comunicado=comunicados.get(2);
    System.out.println("COMUNICADO "+comunicado.toString());
    holder.titulo.setText(comunicado.getTitulo());
    holder.subtitulo.setText(comunicado.getSubtitulo());
    Picasso.with(context).load(comunicado.getEnlace()).into(holder.imagen);
}

@Override
public int getItemCount() {
    return comunicados.size();
}









public static class NuevoViewHolder extends RecyclerView.ViewHolder {
    TextView titulo;
    TextView subtitulo;
    ImageView imagen;

    public NuevoViewHolder(View v) {
        super(v);
        titulo=(TextView)v.findViewById(R.id.titulo);
        subtitulo=(TextView)v.findViewById(R.id.subtitulo);
        imagen=(ImageView)v.findViewById(R.id.imagen);


    }


}
}

Do you think it can happen? the link that collects complimented.get Link is correct, it is a photo any of the internet.

    
asked by Sergio Cv 22.06.2016 в 18:30
source

2 answers

1

It assures to have an image url by means of comunicado.getEnlace() which could be a cause, since it does not have an image url to load

If you have an image then add a measure, for example:

Picasso.with(context).load(comunicado.getEnlace()).resize(120, 120).into(holder.imagen);

What you do is correct, add the image in onBindViewHolder() .

    
answered by 22.06.2016 в 19:29
0

Haber I have implemented, loading images with the Picasso library as follows.

public class Adaptador extends      RecyclerView.Adapter<Adaptador.NuevoViewHolder> {
 LayoutInflater inflater;
 ArrayList<Comunicado>comunicados;
 Context context;


public Adaptador(Context context,ArrayList<Comunicado> comunicados) {
    inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.comunicados = comunicados;
    this.context=context;
}

@Override
public NuevoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v =inflater.inflate(R.layout.row_anime,null);
    return new NuevoViewHolder(v);
}

@Override
public void onBindViewHolder(NuevoViewHolder holder, int position) {
    System.out.println("POSICION:         "+position);

    Comunicado comunicado=comunicados.get(position);
    String urlImagen = comunicado.getEnlace();


    //Condiciono para ver si el resultado es nulo o vació
    if(urlImagen == null || urlImagen.isEmpty()){
    //Acá no uso la librería ya que la imagen que muestro no es pesada
    holder.imagen.setImageResource(R.drawable.ic_image_150dp); //reemplaza la imagen

    }else{
         //Pero si me devuelve una url uso la librería picasso
         Picasso.with(context)
         .load(comunicado.getEnlace())
         .error(R.drawable.ic_image_150dp) //en caso que la url no sea válida muestro otra imagen
         .into(holder.imagen);
    }
}

@Override
public int getItemCount() {
    return comunicados.size();
}


public static class NuevoViewHolder extends RecyclerView.ViewHolder {
    ImageView imagen;

    public NuevoViewHolder(View v) {
        super(v);
        imagen=(ImageView)v.findViewById(R.id.imagen);


    }


}

}
  

I hope it serves you.

    
answered by 25.08.2017 в 01:54