3 回答
TA贡献1856条经验 获得超5个赞
您可以使用addChildEventListener也可以使用addListenerForSingleValueEvent,如下面的代码所示:
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> arrayList = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Question question = ds.getValue(Question.class);
arrayList.add(question.title);
}
//Do what you need to do with your arrayList
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage());
}
};
refQuestions.addListenerForSingleValueEvent(valueEventListener);
如您所见,快速解决此问题的方法是使用arrayListonly insideonDataChange()方法。如果你想在外面使用它,我建议你从这篇文章中查看我的 anwser 的最后一部分,其中我解释了如何使用自定义回调来完成它。您也可以观看此视频以更好地理解。
TA贡献2080条经验 获得超4个赞
您可以使用 onDataChange 方法将获取的结果添加到数组列表中
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
Question question = ds.getValue(Question.class);
arrayList.add(question.title);
}
}
});
然后您可以轻松地在回收站视图中显示它们。
添加回答
举报