setHasFixedSize(true)使应用程序崩溃

时间:2019-11-09 17:06:36

标签: java android

当我运行该应用程序并转到用户活动时,该应用程序崩溃,向我显示mUsersList.setHasFixedSize(true);正在使应用程序崩溃。

这是消息“由:java.lang.NullPointerException引起:尝试在空对象引用上调用虚拟方法'void androidx.recyclerview.widget.RecyclerView.setHasFixedSize(boolean)'”

private RecyclerView mUsersList;
private DatabaseReference mUsersDatabase;

@Override
protected void onCreate( Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.users_single_layout);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mUsersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");




    mUsersList = findViewById(R.id.users_list);
    mUsersList.setHasFixedSize(true);
    mUsersList.setLayoutManager(new LinearLayoutManager(this));

}

1 个答案:

答案 0 :(得分:1)

stacktrace告诉您所需的一切。 mUsersList为null,因此您无法在其上调用任何方法。您应该确保布局文件R.layout.users_single_layout中定义了ID为“ @ + id / users_list”的RecyclerView。另外,您应该执行空指针检查:

mUsersList = findViewById(R.id.users_list);
if (mUsersList != null) {
    mUsersList.setHasFixedSize(true);
    mUsersList.setLayoutManager(new LinearLayoutManager(this));
}