【发布时间】:2020-05-19 21:36:54
【问题描述】:
我正在尝试将 ArrayList 传递给我的回收器适配器类。我已经在我的代码中成功实现了 2 个其他回收器视图,但在这种情况下,正在传递等于 null 的数组列表。这是我的活动代码。
public class PlacedOrders extends AppCompatActivity {
private Toolbar tb;
private User u;
private ArrayList<OrderModel> orderList = new ArrayList<>();
private DatabaseReference root = FirebaseDatabase.getInstance().getReference();
private DatabaseReference ordersReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_placed_orders);
tb = findViewById(R.id.customToolbar);
setSupportActionBar(tb);
Intent i = getIntent();
u = i.getParcelableExtra("USER_DATA");
ordersReference = root.child("Orders").child(u.getUserId());
setRecyclerView();
}
public void setRecyclerView(){
ordersReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
OrderModel om = (ds.getValue(OrderModel.class));
orderList.add(om);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
RecyclerView recyclerView = findViewById(R.id.recycler_view_storeOrders_parent);
recyclerView.setHasFixedSize(false);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
PlacedOrderParentAdapter placedOrderParentAdapter = new PlacedOrderParentAdapter(this, orderList);
recyclerView.setAdapter(placedOrderParentAdapter);
}
}
我已经使用调试器检查了 for 循环,数组已成功填充循环中的项目,但一旦循环结束,它的大小就会降为零。 非常感谢您的帮助。
【问题讨论】:
-
只是添加。当我在不使用数据快照循环的情况下手动将 OrderModel 对象添加到 ArrayList 时。回收站视图工作正常
标签: android firebase-realtime-database android-arrayadapter android-recyclerview