【发布时间】:2019-06-25 21:02:57
【问题描述】:
我在java android中有一个列表:
List<FirebaseData> GetListMap(String data){
final List<FirebaseData> Elements = new ArrayList<>();
FirebaseDatabase database = FirebaseDatabase.getInstance();
mShiftReference = database.getReference("Map/Data/").child(data);
mListener = mShiftReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot child: dataSnapshot.getChildren()) {
Elements.add(child.getValue(FirebaseData.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
// Failed to read value
Log.w("data", "Failed to read value.", error.toException());
}
});
return Elements;
}
当我尝试提取数组的大小时,它返回 0,例如:
int size = GetListMap("2019-06-24").size();
或者我无法提取任何属性。
知道我做错了什么。
【问题讨论】:
-
GetListMap返回List<FirebaseData>,但您将其结果分配给int。究竟发生了什么? (这看起来像是在为稍后发生更改时添加一个侦听器,但实际上并不清楚您是否已经等待更改发生。) -
对不起@LouisWasserman 你是对的,应该是
int size = GetListMap("2019-06-24").size();
标签: java android arrays arraylist