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リストを使用してスピナーを設定しているので、アダプターが必要です。私は大学の名前でスピナーを移入していますArrayListはonChildAddedの後に要素を失います(Androidスタジオ&Firebase)
私はたとえ私がuniversitieslistとarrayofUniversities内のすべての要素を失うreadUniversity()メソッドを離れるときに私が持っている問題があるuniversitieslist
における大学のオブジェクトを格納しています私のスピナーにはこれらの人が住んでいます。
非常に奇妙なのは、リストにはオブジェクトが格納されている必要があります。
また、私はonCreate()のコードの一番上にアダプタを持っています。
firebaseからデータを取得していますか? –
はい、非常に確かです。データはスピナーに表示されます。さらに、ログのコメントを外すと、リストに追加されているデータが表示されます。リストを空にすると、メソッドを離れると – user8212452
はどこにありますか?問題が発生する可能性があります。 –