【发布时间】:2016-04-18 08:45:53
【问题描述】:
我的日志可以打印所有Exercise 对象。但是当我打电话时listExercise 为空。有什么问题?
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Exercise exercise = postSnapshot.getValue(Exercise.class);
String temp = exercise.toString();
Log.d("exercise: ", temp + "\n"); // can log all
listExercises.add(exercise);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.d("The read failed: ", firebaseError.getMessage());
}
});
Log.d("LISTSIZE: ", String.valueOf(listExercises.size())); // return 0
[更新]任何人都需要的答案:
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Exercise exercise = postSnapshot.getValue(Exercise.class);
listExercises.add(exercise);
}
// action with data here
Exercise ex = listExercises.get(0);
tvQuestion.setText(ex.getQuestion);
}
【问题讨论】:
-
你得到一些错误堆栈跟踪吗?
-
不,我登录时它只返回一个空列表:Log.d("LISTSIZE: ", String.valueOf(listExercises.size()));
-
可能您在插入练习之前正在检查列表。请注意,这是异步工作的。将“LISTSIZE”的Log放在listExercises.add(exercise);之后
-
当然,我把“LISTSIZE”的日志放在listExercises.add(exercise);之后。我将编辑我的问题以获取更多详细信息。
-
您的 listExcercise 是 List 的自定义实现还是 class 练习在方法 toString(); 中做某事?也许如果你把剩下的代码我可以帮助你更好:)
标签: android firebase firebase-realtime-database