Где установить RecycleView setAdapter для быстрой загрузки изображений? - PullRequest
0 голосов
/ 19 января 2020

У меня есть приложение, которое выбирает массив URL-адресов изображений из моей базы данных FireStore и настраивает мой настраиваемый адаптер RecycleView для отображения всех изображений при запуске приложения. Должно ли это быть внутри для oop или снаружи для быстрой загрузки? Ниже мой текущий метод. Должен ли getData() быть внутри для l oop?

urlRef.get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()){
                for (QueryDocumentSnapshot document : task.getResult()) {
                    Log.d("FireStore", document.getId() + " => " + document.getData());
                    ArrayList<String> arrayList = (ArrayList<String>) document.get("url");
                    //Do what you need to do with your ArrayList
                    for (String s : arrayList) {
                        list.add(new Custom_Items(s));
                    }
                }
                getdata();
            } else {
                Log.d("FireStore", "Error getting documents: ", task.getException());
            }
        }
    });

private void getdata() {
    adapter = new CustomAdapter(list, this);
    recyclerView.setAdapter(adapter);
}

1 Ответ

2 голосов
/ 19 января 2020

Поскольку ваш ответ представляет собой массив URL-адресов, вам следует установить для адаптера значение RecyclerView, только когда все данные (URL-адреса) готовы.

Чтобы загрузить изображения с URL-адреса элемента RecyclerView, используйте фоновый поток или попробуйте Пикассо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...