I have a function that requests data from an api and fills an array list. Then i use the data from the arraylist in a textView. The problem that occurs is that the function takes time to load the data and the code in which i set the text view gets executed before the arraylist is populated resulting in a crash...I have used Countdown latch to tackle this problem but it isnt working i have used it wrong most probably.
apirequest function
 private void RequestDataFromApi() {
        DotaAPIEndpoints textApiService= API_Client.getClient().create(DotaAPIEndpoints.class);
        Call<List<Heroes>> call2 =textApiService.getHeroes();
        call2.enqueue(new Callback<List<Heroes>>() {
            @Override
            public void onResponse(Call<List<Heroes>> call, Response<List<Heroes>> response) {
                hero_list.clear();
                hero_list.addAll(response.body());
            }
            @Override
            public void onFailure(Call<List<Heroes>> call, Throwable t) {
                Toast.makeText(MainActivity.this, "hero_list call failed!", Toast.LENGTH_SHORT).show();
            }
        });
        requestLatch.countDown();
    }
setText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    requestLatch.await();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                textt.setText(hero_list.get(0).getHeroImg());
            }
        });
 
    