I am a beginner in android development.I faces a problem with arraylist.I declared arraylist city as global variable and I added elements to it from firebase.But.,after that when i access this elements out side of the addchildevent listener method,the array list become empty.How can i declare the array list to get elements globally.? My code snippet is,
public class BookingDetails extends Fragment {
private RecyclerView recyclerView;
private DatabaseReference dataRef;
private FirebaseAuth mAuth;
ArrayList<String> uids=new ArrayList<String>();
private ArrayList<String> dates=new ArrayList<>();
private int hour;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    InputMethodManager in=(InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    in.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
    final View v=inflater.inflate(R.layout.activity_booking_details,container,false);
    recyclerView = (RecyclerView) v.findViewById(R.id.book_detail_view);
    recyclerView.setHasFixedSize(true);
    LinearLayoutManager llm = new LinearLayoutManager(getActivity());
    llm.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(llm);
    recyclerView.addItemDecoration(new SimpleDividerItemDecoration(getActivity()));
    mAuth=FirebaseAuth.getInstance();
    final String user=mAuth.getCurrentUser().getUid();
    dataRef= FirebaseDatabase.getInstance().getReference();
    dataRef.child("Users").child(user).child("booked docters").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot data:dataSnapshot.getChildren()) {
                uids.add(data.getKey());
            }
       }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
    Toast.makeText(getActivity(),uids.get(0), Toast.LENGTH_SHORT).show();
    return v;
    }
}
This gives me empty.But when i use this toast on the method value event listener gives correct elements.How to fix this problem.?
 
     
    