java.lang.NullPointerException, quando eu tento pegar os views do XML. Eu fiz outro tópico, com o código completo, mas ninguém quer ajudar
se ta dando nullpointer é pq tem algo errado, mostra o código e o erro e a linha do erro.
Eu fiz outro tópico, vou passar o link
escreve de novo, não precisa passar link
ok, to pegando aqui
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;
}
-------
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
No caso, o 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));
Linha 42? É essa?
personagem.setIMAGEM((ImageView) objetoView.findViewById(R.id.iconeItem));
É, da erro nessa linha, onde começa o:
personagem.setIMAGEM((ImageView) objetoView.findViewById(R.id.iconeItem));
Se ignorar essa, ele crasha na próxima com o mesmo erro
Esses itens estão presentes no meu_layout
?
Mostra esse xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:id="@+id/iconeItem"
android:layout_width="188dp"
android:layout_height="130dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/felpudo"
android:contentDescription="TODO" />
<TextView
android:id="@+id/titulo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="@+id/iconeItem"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.116"
app:layout_constraintStart_toEndOf="@+id/iconeItem"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.144" />
<TextView
android:id="@+id/discrição"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="@+id/iconeItem"
app:layout_constraintStart_toEndOf="@+id/iconeItem"
app:layout_constraintTop_toBottomOf="@+id/titulo"
app:layout_constraintVertical_bias="0.513" />
</androidx.constraintlayout.widget.ConstraintLayout>
Não usa acentuação em nada que vc fizer.
Cara, eu acredito q o problema esteja nessa sua condição aí, tira esse if e tente de novo.
Blz, vou tentar aqui e mando as novidades. Vlw por enquanto
Engraçado que o professor faz quase igualzinho, e pra ele da tudo certo, mas pra mim, só falta o pc explodir na minha cara kkk. Ser iniciante é foda
Faz parte! As vezes os detalhes passam despercebidos…
Vlw, mano. Realmente. Era um erro dentro daquela condição. Eu esqueci de colocar:
objetoView=layoutInflater.inflate(R.layout.meu_layout, parent, false);
Só coloquei
layoutInflater.inflate(R.layout.meu_layout, parent, false);
Nem pra IDE avisar kkkk. Deu certo aqui
Boa!