【发布时间】:2017-08-18 21:54:35
【问题描述】:
我得到一个空指针异常(这里测试了 1 而不是 i)
这是方法
public String getLat(int i) {
fillDriverList();
arrayLat.get(i);
return"0.000";
}
这是在单独的活动中调用它的地方
AdminActivity appState = new AdminActivity();
latString = appState.getLat(i);
这是填充方法,它打印出驱动程序名称,因此似乎正在填充列表,但由于某种原因在我的 getLat 方法中为空??
public void fillDriverList() {
//Creating firebase object
Firebase ref = new Firebase(Config.FIREBASE_URL);
//adding a value event listener so if data in database changes it does in textview also not needed at the minute
ref.child("Driver").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
arrayLat = new ArrayList<String>();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Driver d = postSnapshot.getValue(Driver.class);
System.out.println("data snapshot Drivers name is -------------------> "+d.getName());
arrayLat.add(Double.toString(d.getLat()));
}
}
/************had to implement this method****************/
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
注意 当我像这样通过它时
intent.putStringArrayListExtra("arrayLat", arrayLat);
在这样的其他活动中使用它没有问题
arrayLat = I.getStringArrayListExtra("arrayLat");
虽然我在下一个活动中使用的值是存储值,并且当我在 firebase 中的信息(纬度)发生变化时不会更新。
谢谢
【问题讨论】:
标签: java android android-studio firebase firebase-realtime-database