-1
**Exception java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
  at adapter.adapterAllCategories.onBindViewHolder (adapterAllCategories.java)
  at adapter.adapterAllCategories.onBindViewHolder (adapterAllCategories.java)
  at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder (RecyclerView.java)
  at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder (RecyclerView.java)
  at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline (RecyclerView.java)
  at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java)
  at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline (GapWorker.java)
  at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline (GapWorker.java)
  at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline (GapWorker.java)
  at androidx.recyclerview.widget.GapWorker.prefetch (GapWorker.java)
  at androidx.recyclerview.widget.GapWorker.run (GapWorker.java)
  at android.os.Handler.handleCallback (Handler.java:938)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8669)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)**

@NonNull @Override public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_item, parent, false); ProductViewHolder evh = new ProductViewHolder(view, mListener); return evh;

}

@Override
public void onBindViewHolder(@NonNull final ProductViewHolder holder, int position) {
    Note_Categories currentItem = list.get(position);

    if (currentItem.getName() != null) {
        holder.textViewName.setText(currentItem.getName());
        holder.textViewDp.setText(currentItem.getName().substring(0, 1));
    } else {
        holder.textViewName.setText("A");
        holder.textViewDp.setText("A");
    }

    if (currentItem.gettext() != null) {
        holder.textViewtext.setText(currentItem.getPoetry());
    } else {
        holder.textViewtext.setText("A");
    }

    if (currentItem.getPostdate().equals("New")){
        holder.textViewNew.setVisibility(View.VISIBLE);
        holder.textViewNew.setText("Today New");
    }else {
        holder.textViewNew.setVisibility(View.GONE);
    }

    holder.btnone.setEnabled(true);
    holder.btntwo.setEnabled(true);
    holder.btnthree.setEnabled(true);
    holder.btnfour.setEnabled(true);
    holder.btnfive.setEnabled(true);
}
  • `currentItem.getPostdate()` is returning null. You could change that line of code to: `if ("New".equals(currentItem.getPostdate()){` – Abra Aug 22 '22 at 03:37

1 Answers1

0

The exception occurs due to this statement,

    if (currentItem.getPostdate().equals("New"))

This means that currentItem.getPostdate() is null. Simple check if it is null before using it:

if (currentItem.getPostdate() != null && currentItem.getPostdate().equals("New")) {}
  • _Simple check if it is null before using it_ Or you could change it to: `if ("New".equals(currentItem.getPostdate()){` which would save having to call the same method twice. – Abra Aug 22 '22 at 03:46