【发布时间】:2021-10-16 18:38:33
【问题描述】:
我已从 Firebase 获取数据到 Dashboard (Fragment) Main 类,现在我需要将同一个 ArrayList 访问到另一个 Fragment 类。我如何在两个类之间共享数组列表。
我的仪表板类代码:
private void GetCategory() {
DatabaseReference db = FirebaseDatabase.getInstance().getReference("Category");
db.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {
Catergory_List cl = userSnapshot.getValue(Catergory_List.class);
CatList.add(cl);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
throw databaseError.toException();
}
});
}
我的第二课
private Dashboard db;
TExpenses= db.TrasactionExpenses();
System.out.println(TExpenses.size());
我尝试了这段代码,但它不起作用
public List<Catergory_List> TrasactionExpenses() {
return CatList;
}
错误日志
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List Dashboard.TrasactionExpenses()' on a null object reference
任何帮助将不胜感激..我无法将值从仪表板类 ArrayList 获取到 B 类
【问题讨论】:
-
你在哪里定义
CatList? -
你在哪里设置你的
Dashboard实例在你的第二类?您的所有代码显示的是您声明了db变量而不给它赋值,然后获得一个空指针异常来调用它的方法。 -
私人名单
CatList;在 Dashboard 类和 onCreate viewCatList = new ArrayList(); 下 -
是的,但
Dashboard变量是null,而不是CatList。 -
在 Dashboard CatList 下能够获取数据,但是当我进入 b 类时它不起作用,我尝试在 onCreateView Dashboard db=new Dashboard();还是没有