I am trying making an android app and I am facing this error:
java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference at com.example.sejal.newquichhelp.ListAllHelperActivity$1.onEvent(ListAllHelperActivity.java:79) at com.example.sejal.newquichhelp.ListAllHelperActivity$1.onEvent(ListAllHelperActivity.java:73) at com.google.firebase.firestore.zzi.onEvent(Unknown Source) at com.google.android.gms.internal.zzevc.zza(Unknown Source) at com.google.android.gms.internal.zzevd.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:836) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:232) at android.app.ActivityThread.main(ActivityThread.java:6661) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1106) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
Here is my code:
ListAllActivity.java:
public class ListAllHelperActivity extends AppCompatActivity {
private RecyclerView mUsersListView;
private List<Users> usersList;
private FirebaseAuth mAuth;
private UsersRecyclerAdapter usersRecyclerAdapter;
private FirebaseFirestore mFirestore;
protected View onCreate(Bundle savedInstanceState,LayoutInflater inflater,ViewGroup container) {
super.onCreate(savedInstanceState);
usersList= new ArrayList<>();
View view= inflater.inflate(R.layout.fragment_users, container, false);
mUsersListView=(RecyclerView)view.findViewById(R.id.user_recycler);
mFirestore=FirebaseFirestore.getInstance();
// usersList= new ArrayList<>();
usersRecyclerAdapter=new UsersRecyclerAdapter(container.getContext(),usersList);
mUsersListView.setHasFixedSize(true);
mUsersListView.setLayoutManager(new LinearLayoutManager(container.getContext()));
mUsersListView.setAdapter(usersRecyclerAdapter);
return view;
}
@Override
public void onStart() {
super.onStart();
String user_id;
mAuth=FirebaseAuth.getInstance();
user_id=mAuth.getCurrentUser().getUid();
mFirestore=FirebaseFirestore.getInstance();
//String and=mFirestore.collection("Users").getId();
//TextView t= (TextView)findViewById(R.id.user_list_name);
//t.setText(and);
mFirestore.collection("Users").addSnapshotListener(ListAllHelperActivity.this,new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
for (DocumentChange doc: documentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
Users users = doc.getDocument().toObject(Users.class);
usersList.add(users);
usersRecyclerAdapter.notifyDataSetChanged();
}
}
}
});
}
}
UsersRecyclerAdapter.java
public class UsersRecyclerAdapter extends
RecyclerView.Adapter<UsersRecyclerAdapter.ViewHolder> {
private List<Users> usersList;
private Context context;
public UsersRecyclerAdapter(Context context,List<Users>usersList)
{
this.usersList=usersList;
this.context=context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.user_list_item,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.user_name_view.setText(usersList.get(position).getName());
CircleImageView user_image_view=holder.user_image_view;
Glide.with(context).load(usersList.get(position).getImage()).into(user_image_view);
}
@Override
public int getItemCount() {
return usersList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private View mView;
private CircleImageView user_image_view;
private TextView user_name_view;
public ViewHolder(View itemView) {
super(itemView);
mView=itemView;
user_image_view=(CircleImageView)mView.findViewById(R.id.user_list_image);
user_name_view=(TextView)mView.findViewById(R.id.user_list_name);
}
}
}
Please help me out with this issue. Thanks