I keep having this error when I run my code. I created an event recycler class to help in displaying my tasks, description, time, etc. it was supposed to be accessed if I were to long-click on a custom calendar that I made.
java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager)' on a null object reference
at com.example.projecttweeta.CustomCalenderView$4.onItemLongClick(CustomCalenderView.java:170)
at android.widget.AbsListView.performLongPress(AbsListView.java:3291)
at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:3206)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Here's the code for my Custom calendar view. This should be the source of the error...
gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
final String date = dateFormat.format(dates.get(position));
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setCancelable(true);
View showView = LayoutInflater.from(parent.getContext()).inflate(R.layout.show_task_layout, null);
RecyclerView recyclerView =(RecyclerView) showView.findViewById(R.id.task_rv);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(showView.getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
EventRecyclerAdapter eventRecyclerAdapter = new EventRecyclerAdapter(showView.getContext(),CollectTaskByDate(date));
recyclerView.setAdapter(eventRecyclerAdapter);
eventRecyclerAdapter.notifyDataSetChanged();
builder.setView(showView);
alertDialog = builder.create();
alertDialog.show();
// TextView Date = showView.findViewById(R.id.date_view);
// TextView task = showView.findViewById(R.id.event_name);
// TextView description = showView.findViewById(R.id.event_description);
// TextView time = showView.findViewById(R.id.eventime);
return true;
}
});
And my EventRecycler...
package com.example.projecttweeta;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
public class EventRecyclerAdapter extends RecyclerView.Adapter<EventRecyclerAdapter.MyViewHolder> {
Context context;
ArrayList<Tasks> arrayList;
public EventRecyclerAdapter(Context context, ArrayList<Tasks> arrayList) {
this.context = context;
this.arrayList = arrayList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.show_task_layout, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
Tasks tasks = arrayList.get(position);
holder.dateText.setText(tasks.getDATE());
holder.event.setText(tasks.getTITLE());
holder.description.setText(tasks.getDESCRIPTION());
holder.time.setText(tasks.getTIME());
}
@Override
public int getItemCount() {
return arrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView dateText, event, description, time;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
dateText = itemView.findViewById(R.id.date_view);
event = itemView.findViewById(R.id.event_name);
description = itemView.findViewById(R.id.event_description);
time = itemView.findViewById(R.id.eventime);
}
}
}
I'd really appreciate your help guys. Thanks a million!