我有我的应用程序有问题。我想显示所有我的用户的名单和他们的详细资料(身份,电话号码),但我一直混得OnStart方法的空指针异常错误。这里是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_customer_status);
...
}
@Override
protected void onStart() {
super.onStart();
firebaseRecyclerAdapter.startListening();
options =
new FirebaseRecyclerOptions.Builder<Users>()
.setQuery(mUserDbase, Users.class)
.build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(options) {
@NonNull
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.activity_customer_status, parent, false);
return new UsersViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull UsersViewHolder usersViewHolder, int i, @NonNull Users users) {
usersViewHolder.setName(users.getName());
usersViewHolder.setPhone(users.getPhone());
usersViewHolder.setStatus(users.getStatus());
}
};
mUserList.setAdapter(firebaseRecyclerAdapter);
}
@Override
protected void onStop() {
super.onStop();
firebaseRecyclerAdapter.stopListening();
}
// View Holder Class
public static class UsersViewHolder extends RecyclerView.ViewHolder{
View mView;
public UsersViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setName (String name){
TextView userNameView = (TextView) mView.findViewById(R.id.name_text);
userNameView.setText(name);
}
public void setPhone (String phone){
TextView userNameView = (TextView) mView.findViewById(R.id.phone_text);
userNameView.setText(phone);
}
public void setStatus (String status){
TextView userNameView = (TextView) mView.findViewById(R.id.status_text);
userNameView.setText(status);
}
}
}
我已经遵循了这一问题:Error in FirebaseListAdapter.startListening(),这也解释了该活动的生命周期工作方式(的onCreate>在onStart>的onResume),所以假设(我是一个福利局)我把我上面的firebaseRecyclerAdapter我的起始码。我也遵循了这一question为指导,但它并没有帮助我满意。请帮忙
您正在使用初始化之前的指针firebaseRecyclerAdapter
。
firebaseRecyclerAdapter = new FirebaseRecyclerAdapte(){...};
firebaseRecyclerAdapter.startListening();
mUserList.setAdapter(firebaseRecyclerAdapter);