Attempt to read from field 'android.view.View android.support.v7.widget.RecyclerView $ ViewHolder.itemView' on a null object reference

0

Someone can help me with this error I do not know what it is about !!! The complete project is on github:

link

  

E / AndroidRuntime: FATAL EXCEPTION: main       Process: com.example.austin.app_doc, PID: 14766       java.lang.NullPointerException: Attempt to read from field 'android.view.View   android.support.v7.widget.RecyclerView $ ViewHolder.itemView 'on a null   object reference           at android.support.v7.widget.RecyclerView $ Adapter.createViewHolder (RecyclerView.java:6795)           at android.support.v7.widget.RecyclerView $ Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java:5975)           at android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5858)           at android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5854)           at android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:2230)           at android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1557)           at android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1517)           at android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:612)           at android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3924)           at android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:3641)           at android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:4194)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.support.constraint.ConstraintLayout.onLayout (ConstraintLayout.java:1915)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.widget.FrameLayout.layoutChildren (FrameLayout.java:325)           at android.widget.FrameLayout.onLayout (FrameLayout.java:261)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.support.v7.widget.ActionBarOverlayLayout.onLayout (ActionBarOverlayLayout.java:444)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.widget.FrameLayout.layoutChildren (FrameLayout.java:325)           at android.widget.FrameLayout.onLayout (FrameLayout.java:261)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1816)           at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1660)           at android.widget.LinearLayout.onLayout (LinearLayout.java:1569)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.widget.FrameLayout.layoutChildren (FrameLayout.java:325)           at android.widget.FrameLayout.onLayout (FrameLayout.java:261)           at com.android.internal.policy.DecorView.onLayout (DecorView.java:888)           at android.view.View.layout (View.java:19781)           at android.view.ViewGroup.layout (ViewGroup.java:6144)           at android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2674)           at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2377)           at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1515)           at android.view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:7266)           at android.view.Choreographer $ CallbackRecord.run (Choreographer.java:981)           at android.view.Choreographer.doCallbacks (Choreographer.java:790)           at android.view.Choreographer.doFrame (Choreographer.java:721)           at android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:967)           at android.os.Handler.handleCallback (Handler.java:808)           at android.os.Handler.dispatchMessage (Handler.java:101)           at android.os.Looper.loop (Looper.java:166)           at android.app.ActivityThread.main (ActivityThread.java:7425)           at java.lang.reflect.Method.invoke (Native Method)           at com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:245)           at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)

This is the code of my Adapter :

package com.example.austin.app_doc;


import android.content.Context;
import android.support.annotation.NonNull;
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.TextView;

import java.util.List;

public class GrpAdaptador extends RecyclerView.Adapter<GrpAdaptador.myViewHolder>{

    Context mContext;
    List<GrpItem> mDate;

    public GrpAdaptador(Context mContext, List<GrpItem> mDate) {
        this.mContext = mContext;
        this.mDate = mDate;
    }

    @NonNull
    @Override
    public myViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        LayoutInflater inflater = LayoutInflater.from(mContext);
        View view = inflater.inflate(R.layout.item_grp, viewGroup, false);

        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull myViewHolder myViewHolder, int i) {

        myViewHolder.grpEsc.setImageResource(mDate.get(i).getGrpEsc());
        myViewHolder.grpName.setText(mDate.get(i).getGrpName());
    }

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

    public  class myViewHolder extends  RecyclerView.ViewHolder{
        ImageView grpEsc;
        TextView grpName;

        public myViewHolder(View itemView){
            super(itemView);
            grpEsc = itemView.findViewById(R.id.grpEsc);
            grpName = itemView.findViewById(R.id.grpDesc);
        }

    }
}
    
asked by Austin Arenas 16.11.2018 в 21:21
source

1 answer

1

The problem is in the onCreateViewHolder() method returned an empty view these !, as if you did not want to deploy anything ...

@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    LayoutInflater inflater = LayoutInflater.from(mContext);
    View view = inflater.inflate(R.layout.item_grp, viewGroup, false);

    return null;
}

In this method you must return the view you inflate.

  

onCreateViewHolder ( ) Called when RecyclerView needs a new one   RecyclerView.ViewHolder of the given type to represent an element.

this will correct the problem:

@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    LayoutInflater inflater = LayoutInflater.from(mContext);
    return new myViewHolder(inflater.from(mContext).inflate(R.layout.item_grp, viewGroup, false));
}
    
answered by 16.11.2018 / 22:28
source