This is UserAdapter file in android Studio. I got a Null pointer exception error. I tried a lot but I can't find where is the error.
I created this Class by seeing the YouTube Channel video it is the latest video. He creates with the method of lambda. But I create it by androidx. Can anyone say what is the problem in the code and how to fix it.
package com.dev.educatie.adapters;
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 com.dev.educatie.R;
import com.dev.educatie.models.User;
import java.util.List;
public class UsersAdapter extends RecyclerView.Adapter<UsersAdapter.UserViewHolder> {
private List<User> users;
public UsersAdapter(List<User> users) {
this.users = users;
}
@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new UserViewHolder(
LayoutInflater.from(parent.getContext()).inflate(
R.layout.item_container_user,
parent,
true
)
);
}
@Override
public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
holder.setUserData(users.get(position));
}
@Override
public int getItemCount() {
return users.size();
}
static class UserViewHolder extends RecyclerView.ViewHolder {
TextView textFirstChar, textUsername, textEmail;
ImageView imageAudioMeeting, imageVideoMeeting;
public UserViewHolder(@NonNull View itemView) {
super(itemView);
textFirstChar = itemView.findViewById(R.id.textFirstChar);
textUsername = itemView.findViewById(R.id.textUsername);
textEmail = itemView.findViewById(R.id.textEmail);
imageAudioMeeting = itemView.findViewById(R.id.imageAudioMeeting);
imageVideoMeeting = itemView.findViewById(R.id.imageVideoMeeting);
}
void setUserData(User user) {
textFirstChar.setText(user.Name.substring(0,1));
textUsername.setText(String.format("%s.educatie",user.Name));
textEmail.setText(user.Email);
}
}
}
Here is the logcat:
2020-08-09 17:54:57.158 26485-26485/com.dev.educatie E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dev.educatie, PID: 26485
android.view.InflateException: Binary XML file line #24: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:761)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at com.dev.educatie.adapters.UsersAdapter.onCreateViewHolder(UsersAdapter.java:21)
at com.dev.educatie.adapters.UsersAdapter.onCreateViewHolder(UsersAdapter.java:12)
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.onMeasure(RecyclerView.java:3540)
at android.view.View.measure(View.java:20682)
at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
at android.view.View.measure(View.java:20682)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:20682)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
at android.view.View.measure(View.java:20682)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
at android.view.View.measure(View.java:20682)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
at android.view.View.measure(View.java:20682)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:735)
at android.view.View.measure(View.java:20682)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2650)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1587)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1856)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1472)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7021)
2020-08-09 17:54:57.158 26485-26485/com.dev.educatie E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:918)
at android.view.Choreographer.doCallbacks(Choreographer.java:716)
at android.view.Choreographer.doFrame(Choreographer.java:651)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:904)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6261)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1064)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)