I had a problem with RecyclerView, this is the error:
android.view.InflateException: Binary XML file line #62 in com.bryanvalerio.journalapp:layout/journal_item: Binary XML file line #62 in com.bryanvalerio.journalapp:layout/journal_item: Error inflating class <unknown>
Caused by: android.view.InflateException: Binary XML file line #62 in com.bryanvalerio.journalapp:layout/journal_item: Error inflating class <unknown>
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:882)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1034)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:989)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1151)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1154)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)
at android.view.LayoutInflater.inflate(LayoutInflater.java:700)
at android.view.LayoutInflater.inflate(LayoutInflater.java:544)
at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:126)
at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:95)
at com.bryanvalerio.journalapp.recyclerview.adapter.JournalAdapter.onCreateViewHolder(JournalAdapter.java:42)
at com.bryanvalerio.journalapp.recyclerview.adapter.JournalAdapter.onCreateViewHolder(JournalAdapter.java:24)
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:25737)
at android.view.ViewGroup.layout(ViewGroup.java:6818)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
at android.view.View.layout(View.java:25737)
at android.view.ViewGroup.layout(ViewGroup.java:6818)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:25737)
at android.view.ViewGroup.layout(ViewGroup.java:6818)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
at android.view.View.layout(View.java:25737)
at android.view.ViewGroup.layout(ViewGroup.java:6818)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:25737)
at android.view.ViewGroup.layout(ViewGroup.java:6818)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
at android.view.View.layout(View.java:25737)
2024-01-07 15:21:49.520 10753-10753 AndroidRuntime com.bryanvalerio.journalapp E at android.view.ViewGroup.layout(ViewGroup.java:6818)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:1075)
at android.view.View.layout(View.java:25737)
at android.view.ViewGroup.layout(ViewGroup.java:6818)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:5193)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4466)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3239)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11197)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1650)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1659)
at android.view.Choreographer.doCallbacks(Choreographer.java:1129)
at android.view.Choreographer.doFrame(Choreographer.java:1055)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1622)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8893)
at java.lang.reflect.Method.invoke(Native Method)
at ...
I don't know why. I don't understand it
I tried using the View instead of databinding, but not worked. I tried to change the theme. I search an error in the item file, but nothing. If you can help me you would be doing me a great favor. Thank you in advance
Here the adapter:
package com.bryanvalerio.journalapp.recyclerview.adapter;
import android.content.Context;
import android.text.format.DateUtils;
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.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.bryanvalerio.journalapp.R;
import com.bryanvalerio.journalapp.databinding.JournalItemBinding;
import com.bryanvalerio.journalapp.recyclerview.model.Journal;
import com.bumptech.glide.Glide;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import java.util.Objects;
public class JournalAdapter extends RecyclerView.Adapter<JournalAdapter.ViewHolder> {
private Context context;
private List<Journal> journals;
public JournalAdapter(Context context, List<Journal> journals) {
this.context = context;
this.journals = journals;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
/*View view = LayoutInflater.from(context)
.inflate(R.layout.journal_item, parent, false);
*/
return new ViewHolder(
DataBindingUtil.inflate(
LayoutInflater.from(context),
R.layout.journal_item,
parent,
false)
);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Journal currentJournal = journals.get(position);
String timeAgo = (String) DateUtils.getRelativeTimeSpanString(
currentJournal.getTimeAdded().getSeconds() * 1000
);
holder.binding.title.setText(currentJournal.getTitle());
holder.binding.user.setText(currentJournal.getUserName());
holder.binding.description.setText(currentJournal.getThoughts());
holder.binding.dateCreated.setText(timeAgo);
Glide.with(context.getApplicationContext())
.load(currentJournal.getImageUrl())
.fitCenter()
.into(holder.binding.image);
/*holder.dateCreated.setText(timeAgo);
holder.title.setText(currentJournal.getTitle());
holder.description.setText(currentJournal.getThoughts());
holder.user.setText(currentJournal.getUserName());
Glide.with(context)
.load(currentJournal.getImageUrl())
.fitCenter()
.into(holder.image);
*/
}
@Override
public int getItemCount() {
return journals.size();
}
protected class ViewHolder extends RecyclerView.ViewHolder{
private JournalItemBinding binding;
public ViewHolder(@NonNull JournalItemBinding binding) {
super(binding.getRoot());
this.binding = binding;
this.binding.shareButton.setOnClickListener(view -> {
// TODO: Share the post
});
}
/*
private ImageView image;
private TextView title;
private FloatingActionButton shareButton;
private TextView description;
private TextView user;
private TextView dateCreated;
public ViewHolder(@NonNull View itemView) {
super(itemView);
image = itemView.findViewById(R.id.image);
title = itemView.findViewById(R.id.title);
shareButton = itemView.findViewById(R.id.shareButton);
description = itemView.findViewById(R.id.description);
user = itemView.findViewById(R.id.user);
dateCreated = itemView.findViewById(R.id.dateCreated);
}
*/
}
}
Here the journal_item.xml file:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/application_color2"
app:cardCornerRadius="30dp"
android:layout_margin="10dp"
android:padding="30dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/application_color2">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="2dp"
android:layout_height="120dp"
app:layout_constraintBottom_toTopOf="@+id/title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="132dp"
android:gravity="center"
android:layout_marginEnd="10dp"
android:text="Title"
android:textColor="@color/white"
android:textSize="40sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:contentDescription="share"
android:layout_marginBottom="8dp"
android:backgroundTint="@color/application_color"
android:src="@android:drawable/ic_menu_share"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:paddingStart="5dp"
android:layout_marginTop="15dp"
android:text="Description"
android:maxWidth="250sp"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<TextView
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="16dp"
android:gravity="center"
android:maxWidth="170sp"
android:text="by: userName"
android:textColor="@color/application_color"
android:textSize="18sp"
android:textStyle="italic|bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/description"
app:layout_constraintVertical_bias="1.0" />
<TextView
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:id="@+id/dateCreated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:maxWidth="170sp"
android:text="date"
android:layout_marginEnd="10dp"
android:textColor="@color/application_color"
android:textSize="18sp"
android:textStyle="italic"
app:layout_constraintBottom_toTopOf="@+id/user"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/description"
app:layout_constraintVertical_bias="1.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</layout>
Thank you in advance