Hi i am trying to use recycler function in java
the app does not open, an error appears in the cardview log, but I do not know how to solve it, I thank you very much
This cardview should show me some imagent, it is and some textview I think it is The error is when trying to inflate the cardview
Main Activity
package com.niccode.pets;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.widget.LinearLayout;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private String likes;
private RecyclerView listaMascotas;
ArrayList<Mascotas> ArraylistMascotas = new ArrayList<Mascotas>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listaMascotas = (RecyclerView) findViewById(R.id.recly);
LinearLayoutManager vista = new LinearLayoutManager(this);
vista.setOrientation(LinearLayoutManager.VERTICAL);
listaMascotas.setLayoutManager(vista);
iniciarLista();
iniciarAdaptador();
}
public void iniciarLista (){
likes = "0";
ArraylistMascotas.add(new Mascotas(R.drawable.gatito1, "Shasha", likes ));
ArraylistMascotas.add(new Mascotas(R.drawable.gatito2, "Nugget", likes ));
ArraylistMascotas.add(new Mascotas(R.drawable.gatito3, "Michin", likes ));
ArraylistMascotas.add(new Mascotas(R.drawable.gatito4, "Pelusa", likes ));
ArraylistMascotas.add(new Mascotas(R.drawable.gatito5, "Misifu", likes ));
}
public void iniciarAdaptador(){
Mascotas_Adaptador adaptador = new Mascotas_Adaptador(ArraylistMascotas);
listaMascotas.setAdapter(adaptador);
}
}
Adaptator
package com.niccode.pets;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
public class Mascotas_Adaptador extends RecyclerView.Adapter<Mascotas_Adaptador.MascotasViewHolder> {
ArrayList<Mascotas> Mascotas;
public Mascotas_Adaptador(ArrayList<Mascotas> Mascotas){
this.Mascotas = Mascotas;
}
@NonNull
@Override
public MascotasViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_layout, parent, false);
return new MascotasViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull MascotasViewHolder Mascotasholder, int position) {
Mascotas mascotas = Mascotas.get(position);
Mascotasholder.imgFoto.setImageResource(mascotas.getFoto());
Mascotasholder.tvNombre.setText(mascotas.getNombre());
Mascotasholder.tvLikes.setText(mascotas.getLikes());
}
@Override
public int getItemCount() {
return Mascotas.size();
}
public static class MascotasViewHolder extends RecyclerView.ViewHolder {
private ImageView imgFoto;
private TextView tvNombre;
private TextView tvLikes;
public MascotasViewHolder(@NonNull View itemView) {
super(itemView);
imgFoto = (ImageView) itemView.findViewById(R.id.imgGatito);
tvNombre = (TextView) itemView.findViewById(R.id.nombre);
tvLikes = (TextView) itemView.findViewById(R.id.likes);
}
}
}
Log Error
06-28 22:34:58.090 4945-4945/com.niccode.pets W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41bc3930)
06-28 22:34:58.110 4945-4945/com.niccode.pets E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #2: Error inflating class com.google.android.material.card.MaterialCardView
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.niccode.pets.Mascotas_Adaptador.onCreateViewHolder(Mascotas_Adaptador.java:24)
at com.niccode.pets.Mascotas_Adaptador.onCreateViewHolder(Mascotas_Adaptador.java:14)
at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:446)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14008)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1894)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1713)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4353)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:760)
at android.view.Choreographer.doCallbacks(Choreographer.java:573)
at android.view.Choreographer.doFrame(Choreographer.java:543)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:746)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.Inv
06-28 22:34:58.120 4945-4959/com.niccode.pets D/dalvikvm: GC_CONCURRENT freed 260K, 7% free 4522K/4812K, paused 2ms+2ms, total 27ms
06-28 22:34:58.130 4945-4945/com.niccode.pets D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 15ms
CardView
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cvMascotas"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
card_view:cardCornerRadius="4dp"
>
<LinearLayout
android:id="@+id/laImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imgGatito"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/gatito1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<ImageView
android:layout_marginStart="5dp"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/hueso"
/>
<TextView
android:id="@+id/nombre"
android:textAlignment="center"
android:layout_width="310dp"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="@string/nombre"
android:layout_marginStart="7dp"
/>
<TextView
android:id="@+id/likes"
android:textAlignment="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="@string/Likes"
android:layout_marginStart="5dp"
/>
<Button
android:id="@+id/btnLikes"
android:layout_marginStart="10dp"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/hueso"
/>
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>