android - java.lang.IllegalArgumentException: You must pass in a non-view

1

I have an error in the following code and as much as I look I do not know what it can be, I have it well linked to the xml and instantiated, the code is as follows:

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

View v;
Context c;
ArrayList<ItemCardMap> lista;
OnCardLugarSelectedListener itemSelectedListener;
static OnItemAdaptadorClickListener listener;


public AdaptadorCardsLugares(Context c, OnItemAdaptadorClickListener listener){
    this.c=c;
    lista=new ArrayList<>();
    itemSelectedListener= (OnCardLugarSelectedListener) c;
    this.listener=listener;
}

public AdaptadorCardsLugares(Context c, ArrayList lista, OnItemAdaptadorClickListener listener){
    this.c=c;
    this.lista=lista;
    itemSelectedListener= (OnCardLugarSelectedListener) c;
    this.listener=listener;
}


@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    v= LayoutInflater.from(c).inflate(R.layout.card_mapa_lugares,parent,false);

    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    ItemCardMap i=lista.get(position);

    Glide.with(c)
            .load(i.getURLImagen())
            .crossFade()
            .centerCrop()
            .placeholder(R.drawable.imagen_defecto)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .thumbnail(0.5f)
            .into(holder.imagen);
    holder.nombre.setText(i.getNombre());
}


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



public void addItem(ItemCardMap itemCardMap){
    lista.add(itemCardMap);
}

public void notificarCambio(){
    notifyDataSetChanged();
}

public void addLista(ArrayList<ItemCardMap> lista){
    this.lista=lista;
    notificarCambio();
}

public void getItem(int position){
    itemSelectedListener.onLugarSelected(lista.get(position));
    Log.v("onclick","Entra en el calback del adaptador");
}


public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

    ImageView imagen;
    TextView nombre;

    public ViewHolder(View itemView) {
        super(itemView);
        imagen= (ImageView) itemView.findViewById(R.id.img_card_lugares);
        nombre= (TextView) itemView.findViewById(R.id.txt_nombre_card_lugares);
        itemView.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
        listener.onClick(view, getAdapterPosition());
    }
}

public interface OnCardLugarSelectedListener{
    void onLugarSelected(ItemCardMap item);
}


}

And the error that occurs to me is in the line of .into(holder.imagen);

                                                           FATAL EXCEPTION: main
                                                           Process: es.aandg.demo, PID: 29114
                                                           java.lang.IllegalArgumentException: You must pass in a non null View
                                                               at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:678)
                                                               at com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:448)
                                                               at es.aandg.demo.Lugares.AdaptadorCardsLugares.onBindViewHolder(AdaptadorCardsLugares.java:69)
                                                               at es.aandg.demo.Lugares.AdaptadorCardsLugares.onBindViewHolder(AdaptadorCardsLugares.java:27)
                                                               at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6356)
                                                               at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6389)
                                                               at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5335)
                                                               at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5598)
                                                               at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5440)
                                                               at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5436)
                                                               at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2224)
                                                               at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1551)
                                                               at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1511)
                                                               at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:595)
                                                               at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3583)
                                                               at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3312)
                                                               at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3844)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
                                                               at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
                                                               at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
                                                               at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
                                                               at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
                                                               at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
                                                               at android.support.v4.widget.NestedScrollView.onLayout(NestedScrollView.java:1622)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1167)
                                                               at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:852)
                                                               at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:871)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1193)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
                                                               at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
                                                               at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
                                                               at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
                                                               at android.view.View.layout(View.java:16630)
                                                               at android.view.ViewGroup.layout(ViewGroup.java:5437)
                                                               at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)

Thanks in advance

    
asked by Adrián Garrido Blázquez 08.08.2017 в 17:35
source

1 answer

0
  

java.lang.IllegalArgumentException: You must pass in to non null View

The problem is that onCreateViewHolder() is returning an empty view, I see that you use the variable c that contains the "context", but I suggest using the context of the Activity:

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    //v= LayoutInflater.from(c).inflate(R.layout.card_mapa_lugares,parent,false);
    LayoutInflater inflater = LayoutInflater.from(getActivity());
    View v = inflater.inflate(R.layout.card_mapa_lugares, parent, false);
    return new ViewHolder(v);
}
    
answered by 08.08.2017 / 19:08
source