Как мне найти эти ProgressBar
Я знаю, как создать список с View
как показано выше. Я пытаюсь создать загрузчик, и одновременно будет загружаться несколько потоков.
Эти Thread
необходимо использовать setProgress(..)
из ProgressBar
, Однако я не знаю, как я могу ссылаться на эти индикаторы выполнения после их создания с помощью адаптера. И, соответственно, кнопки отмены, чтобы я мог добавить слушателей к нему.
Пожалуйста, помогите мне с этим
1 ответ
Я бы предложил вам создать Task
класс, который бы реализовал Runnable
и есть метод getCurrentProgress()
, который бы возвращал прогресс текущей задачи и метод cancel()
отменить себя (отмена может быть сделана любым желаемым способом, подняв флаг или любым другим способом). Затем вы можете запустить задачу, используя обычный поток (или использовать AsyncTask, или один из Executors
) и добавьте свой Task
S к адаптеру как элементу, а затем вы можете отобразить соответствующие виды с помощью
Task task = getItem(position);
progressBar.setProgress(task.getCurrentProgress());
в вашем getView()
метод адаптера.
Тогда, когда вам нужно обновить прогресс, вам просто нужно обновить прогресс внутри Task
и позвонить adapter.notifyDataSetChange()
в потоке пользовательского интерфейса. То, что вам также нужно сделать, это убедиться, что ваш новый прогресс в Task
экземпляр будет виден из других тем, для этого я бы предложил вам использовать AtomicInteger
в качестве индикатора прогресса (потому что каждый AtomicInteger.get()
возвращает последнее значение).