这个问题在这里已有答案:
我正在尝试制作一个Android应用程序,我正面临着这个错误:
java.lang.NullPointerException:尝试在com.example.sejal.newquichhelp.ListAllHelperActivity $ 1.onEvent(ListAllHelperActivity.java)的空对象引用上调用接口方法'boolean java.util.List.add(java.lang.Object)' :79)com.example.sejal.newquichhelp.ListAllHelperActivity $ 1.onEvent(ListAllHelperActivity.java:73),位于com.google.android.gms.internal的com.google.firebase.firestore.zzi.onEvent(未知来源)。 zzevc.zza(未知来源)位于android.os.Handler.dispatchMessage(Handler)上android.os.Handler.handleCallback(Handler.java:836)的com.google.android.gms.internal.zzevd.run(未知来源) .java:103)在android.app.Looper.loop(Looper.java:232)的android.app.ActivityThread.main(ActivityThread.java:6661)at java.lang.reflect.Method.invoke(Native Method)at at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1106)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
java.lang.NullPointerException:尝试在空对象引用上调用接口方法'boolean java.util.List.add(java.lang.Object)'
这是我的代码:
list all activity.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();
}
}
}
});
}
}
users recycler adapter.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);
}
}
}
请帮我解决这个问题。谢谢
取消注释
// usersList = new ArrayList <>();