AsyncTask в RecyclerView | Кодементор

По сути, эта статья основана на Сегодня я узнал категория, и это статья, основанная на руководстве, в которой рассказывается о том, как использовать AsyncTask в RecyclerView. Итак, приступим.

Я новичок в разработке Android. Несколько дней назад я работал над приложением, в котором у меня была задача загрузить изображение из Интернета через URL-адрес. После некоторых исследований я не получил правильного решения этой задачи. Это в основном для целей обучения и того, как работает AsyncTask.

AsyncTask — это класс, который выполняет операцию в фоновом режиме и публикует результаты в UIThread, не блокируя ее. В классе AsyncTask есть основной метод сделатьInBackground, что помогает выполнять операцию в фоновом режиме.

Итак, начнем с простого кода AsyncTask с тремя параметрами. Первый предназначен для выполнения операции в фоновом режиме в делать в фоновом режиме метод. Второй предназначен для отображения любого прогресса на экране до тех пор, пока работа в фоновом режиме не будет завершена в методе doInBackground. И последний для отображения результата метода doInBackground в основном потоке означает UIThread.


Теперь мне нужно загрузить одно изображение из Интернета с помощью класса AsyncTask и опубликовать его в основном потоке. Ниже код создает ссылку с URL-адресом и загружает изображение из Интернета и помещает в ImageView.

После этого теперь выполните задачу в MainActivity, используя выполнять() метод класса AsyncTask.

Итак, процесс загрузки одного изображения из Интернета завершен. Изображение загружается по нажатию кнопки загрузки. См. ниже вывод приведенного выше кода.

Теперь давайте перейдем к следующей задаче, то есть к загрузке нескольких изображений из Интернета и настройке в RecyclerView. После некоторых исследований в Интернете ссылки выполняют ту же задачу, используя Пикассо а также Скольжение и некоторые из ссылок, которые они используют AsyncTask для выполнения этой работы, очень сложны для понимания новичками. Я должен найти простой способ выполнить эту задачу.

Итак, нам нужно создать внешний класс AsyncTask и загрузить в него изображения для каждого элемента.

В адаптере RecyclerView есть метод onBindViewHolder, который вызывается для каждого элемента в списке. Для загрузки нескольких изображений мы должны иметь в виду, что существует также множественный вызов класса AsyncTask. Поэтому мы создадим внешний класс, расширяющий класс AsyncTask, и будем использовать его в методе OnBindViewHolder.

Итак, создайте внешний класс, который расширяет AsyncTask, и передайте два параметра: один для типа ImageView, а другой — для контекста.

Теперь создайте объект этого класса в onBindViewHolder метод и вызов выполнять метод.

DataClass.java является заполнителем данных и содержит URL-адрес изображения для загрузки для каждого элемента.

Теперь установите RecyclerView и LayoutManager в MainActivity. Здесь показан ниже код MainActivity.java

Вот окончательный результат задачи.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *