Я получаю данные из firebase в методе onStart и помещаю их в Arraylist (user_words). Но в методе onCreateView мой Arraylist выглядит пустым. Однако в самом начале arraylist выглядит полным. Я делал то же самое в разных классах, и это работало. Но на этот раз это не удалось. Я не понимаю, в чем моя вина?
private DatabaseReference databaseReference2 = FirebaseDatabase.getInstance().getReference("kullanici_kelime");
private ArrayList<User_word> user_words= new ArrayList<>();
@Override
public void onStart(){
super.onStart();
databaseReference2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
user_words.clear();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
User_word user_word= new User_word();
user_word.setMean(postSnapshot.child("mean").getValue(String.class)) ;
user_word.setName(postSnapshot.child("name").getValue(String.class));
user_word.setKey(postSnapshot.child("key").getValue(String.class));
user_word.setKey(postSnapshot.child("id").getValue(String.class));
user_words.add(user_word);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.fragment_frag3, container,false);
rv= (RecyclerView)view.findViewById(R.id.rv2);
rv.setHasFixedSize(true);
rv.setLayoutManager(new LinearLayoutManager(this.getActivity()));
Log.e("wordssize",Integer.toString(user_words.size()));
adapter= new CardAdapter2_2(getActivity(),user_words);
rv.setAdapter(adapter);
return view;
}
структура базы данных