【发布时间】:2017-08-18 16:03:10
【问题描述】:
public void readUniversity(){
ChildEventListener uniListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
//Log.d(LOG_TAG, dataSnapshot.getKey());
University uni = dataSnapshot.getValue(University.class);
universitieslist.add(uni); //Adding to an ArrayList of type University
//Log.d(LOG_TAG, universitieslist.size()+"is the size");
arrayofUniversities.add(uni.getName()); //Adding name of University to list
//Log.d(LOG_TAG, adapter.getCount() + " items");
//Log.d(LOG_TAG, arrayofUniversities.size()+" is the size");
adapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
DatabaseReference uniReference = database.getReference("note-retrieve/Universities");
uniReference.addChildEventListener(uniListener);
}
代码几乎是不言自明的。我正在使用 arrayofUniversities 列表来填充微调器,所以我需要一个适配器。我正在用大学的名称填充微调器
我将大学对象存储在大学列表中
我遇到的问题是,当我离开 readUniversity() 方法时,我丢失了 universitylist 和 arrayofUniversities 中的每个元素,即使我的微调器中填充了这些元素。
这很奇怪,因为列表应该存储对象。
另外,我的适配器位于 onCreate() 代码的最顶部。
【问题讨论】:
-
你确定你从 firebase 获取数据???
-
是的,非常确定。数据显示在微调器中。另外,当我取消注释日志时,它会显示正在添加到列表中的数据。一旦它离开方法,虽然列表为空
-
您的支持代码在哪里?也许会出现问题。
-
支持代码是什么意思?
-
“我将大学对象存储在大学列表中”,这行是什么意思