![](/img/trans.png)
[英]RecyclerView adapter's getItemCount throws NullPointerException
[英]getItemCount() of my RecyclerView adapter returns 0 even though I have items in it
即使我有项目,我的RecyclerView
也会返回 0 的getItemCount()
。 可能是什么原因?
活动中
int length = mAdapter.getItemCount();
在适配器中
@Override
public int getItemCount() {
return reportlist.size();
}
我活动中的 onCreate() 方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report_listing);
mRecyclerView = findViewById(R.id.recyclerView);
flightViewModel = new ViewModelProvider(this).get(FlightViewModel.class);
userViewModel = new ViewModelProvider(this).get(UserViewModel.class);
mLayoutManager = new LinearLayoutManager(ReportListingActivity.this);
mAdapter = new ReportAdapter(reportitems, ReportListingActivity.this);
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(mAdapter);
userViewModel.getAllUsers().observe(ReportListingActivity.this, new Observer<List<User>>() {
@Override
public void onChanged(List<User> users) {
user_details = getUsers();
user_name = user_details[0];
user_id = user_details[1];
flights = flightViewModel.getFlightReports(user_name,user_id);
if (flights.size() == 0) return;
reportitems.clear();
reportItemsCopy.clear();
for(int i = 0; i <flights.size();i++){
String flightnumber = flights.get(i).getFlightNumber();
String departuredate = flights.get(i).getDate();
String status = flights.get(i).getFlight_closure_status();
String user_name = flights.get(i).getName();
String user_id = flights.get(i).getStaffID();
reportitems.add(new ReportItem(flightnumber,departuredate,status, user_name, user_id));
}
mAdapter.notifyDataSetChanged();
}
});
}
你应该把你的适配器 class 让别人更容易帮助,但无论如何。 您将 reportItems 传递给 onCreate() 中的适配器构造函数,但我没有看到您已经初始化它并且没有将任何项目放入列表中,尝试对其进行初始化并将任何项目放入 onCreate() 中的 reportItems 列表中) 方法,然后将其传递给适配器构造函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.