繁体   English   中英

我的 RecyclerView 适配器的 getItemCount() 返回 0,即使里面有项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM