android - FirebaseRecyclerAdapter.startListening() 出现 NullPointerException
问题描述
我的应用程序有问题。我试图显示我的所有用户列表及其详细信息(状态、电话号码),但我不断收到 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);
}
}
}
我已经关注了这个问题:FirebaseListAdapter.startListening() 中的错误,它解释了活动生命周期的工作方式为(onCreate>onStart>onResume),因此假设(我是新手)我将启动代码放在我的firebaseRecyclerAdapter。我也按照这个问题作为指导,但它也没有帮助我。请帮忙
解决方案
您firebaseRecyclerAdapter
在初始化之前使用指针。
firebaseRecyclerAdapter = new FirebaseRecyclerAdapte(){...};
firebaseRecyclerAdapter.startListening();
mUserList.setAdapter(firebaseRecyclerAdapter);
推荐阅读
- c - GCC 编译:在文件末尾生成格式错误的 ASM
- flutter - '未来
Function(dynamic, int)' 不能分配给参数类型 'num Function(dynamic, int)' - bash - 循环输入 bash 脚本的参数
- linux - USB捕获设备“投射”流
- javascript - 如何找到范围之间的差距?
- express - 在 Express 中处理 POST 和 GET 请求
- git - 编辑 git 远程日志历史
- rest - 允许以多种方式创建资源的 RESTful 方式?
- php - PHP 模拟测试在 PHPUnit 内的方法调用部分不起作用
- javascript - 如何使用 Javascript 方法移动到另一个页面,然后移动到页面的某个部分