Erro java.lang.NullPointerException ao tentar criar um adapter para uma lista. Me ajudem, por favor, não sei mais o que fazer

0 respostas
javaandroid
Gabriel432135

Segue o código da classe:

package com.example.cardsfelpudo;
import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.ImageView;

import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

public class MeuAdaptador extends ArrayAdapter{

public MeuAdaptador(@NonNull Context context, int resource) {

super(context, resource);

}
@Override
public void add(@Nullable Object object) {
    super.add(object);
}

@Override
public int getCount() {
    return super.getCount();
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    View objetoView = convertView;
    View v;
    ViewElemento personagem;

    if(convertView==null){
        LayoutInflater layoutInflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layoutInflater.inflate(R.layout.meu_layout, parent, false);

        personagem = new ViewElemento();

        personagem.setIMAGEM((ImageView) objetoView.findViewById(R.id.iconeItem));
        personagem.setTITULO((TextView) objetoView.findViewById(R.id.titulo));
        personagem.setDISCRICAO((TextView) objetoView.findViewById(R.id.discrição));

        objetoView.setTag(personagem);
    }else{
        personagem = (ViewElemento) objetoView.getTag();
    }

    DadosPersonagem dados = (DadosPersonagem) this.getItem(position);
    personagem.getIMAGEM().setImageResource(dados.getICONE());
    personagem.getTITULO().setText(dados.getTITULO());
    personagem.getDISCRICAO().setText(dados.getDISCRICAO());

    return objetoView;
}

}

O layout é um androidx.constraintlayout.widget.ConstraintLayout

Se quiserem, eu mando o código das outras classes. Ele da erro nessa parte:

personagem.setIMAGEM((ImageView) objetoView.findViewById(R.id.iconeItem));
        personagem.setTITULO((TextView) objetoView.findViewById(R.id.titulo));
        personagem.setDISCRICAO((TextView) objetoView.findViewById(R.id.discrição));

erro:

04-04 20:46:12.671 8796-8796/com.example.cardsfelpudo E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.cardsfelpudo, PID: 8796

java.lang.NullPointerException

at com.example.cardsfelpudo.MeuAdaptador.getView(MeuAdaptador.java:42)

at android.widget.AbsListView.obtainView(AbsListView.java:2263)

at android.widget.ListView.makeAndAddView(ListView.java:1790)

at android.widget.ListView.fillDown(ListView.java:691)

at android.widget.ListView.fillFromTop(ListView.java:752)

at android.widget.ListView.layoutChildren(ListView.java:1630)

at android.widget.AbsListView.onLayout(AbsListView.java:2091)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1915)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)

at android.widget.FrameLayout.onLayout(FrameLayout.java:388)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)

at android.widget.FrameLayout.onLayout(FrameLayout.java:388)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)

at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)

at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)

at android.widget.FrameLayout.onLayout(FrameLayout.java:388)

at android.view.View.layout(View.java:14838)

at android.view.ViewGroup.layout(ViewGroup.java:4631)

at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1999)

at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1756)

at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1008)

at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5753)

at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)

at android.view.Choreographer.doCallbacks(Choreographer.java:574)

at android.view.Choreographer.doFrame(Choreographer.java:544)

at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)

at android.os.Handler.handleCallback(Handler.java:733)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:136)

at android.app.ActivityThread.main(ActivityThread.java:5017)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:515)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

at dalvik.system.NativeStart.main(Native Method)

04-04 20:47:31.421 8796-8796/com.example.cardsfelpudo I/Process: Sending signal. PID: 8796 SIG: 9
Criado 5 de abril de 2020
Respostas 0
Participantes 1