Android Studio中对接Firestore的第二个RecyclerView不显示条目问题
问题根因
你在ItemsAdded页面初始化RecyclerView时,未设置对应的布局管理器(LayoutManager)。RecyclerView必须绑定LayoutManager才能确定条目排列规则、完成渲染,这就是你即使拿到了数据也看不到任何内容的核心原因。
你可以对比MainActivity的初始化逻辑,MainActivity中明确调用了items.setLayoutManager(new LinearLayoutManager(this)),而ItemsAdded中遗漏了这行配置。
修复方案
修改ItemsAdded的onCreate方法,在RecyclerView初始化后补充布局管理器设置即可:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_items_added); pD = new ProgressDialog(this); pD.setCancelable(false); pD.setMessage("Retrieving Data..."); pD.show(); addedItems = new ArrayList<>(); db = FirebaseFirestore.getInstance(); recycle = findViewById(R.id.addedRecycler); // 新增以下两行配置 recycle.setHasFixedSize(true); recycle.setLayoutManager(new LinearLayoutManager(ItemsAdded.this)); adapter = new MyAdapter(ItemsAdded.this, addedItems, new MyAdapter.ItemClickListener() { @Override public void onItemClick(Item item) { Intent intent = new Intent(ItemsAdded.this, ItemView.class); intent.putExtra("Item", item); startActivity(intent); } }); recycle.setAdapter(adapter); EventChangeListener(); }
其他可选修复(不影响RecyclerView显示,仅修正数据错误)
你在ItemView中存在字段赋值笔误,碳水(uh)的取值错拿了卡路里的数值:
// 原有错误代码 uhS = item.getKcal(); // 修正为 uhS = item.getUh(); // 改为对应Item类中碳水的get方法即可
内容的提问来源于stack exchange,提问作者Velibor Simonovic
相关产品推荐
相关产品推荐

