android开发 ListView ProgressBar实时更新

2024-09-01 01:32

本文主要是介绍android开发 ListView ProgressBar实时更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近公司做的一款安卓APP项目需要实现一个下载功能,其中我用listView列表来展示下载项目,每个Item里面用到了ProgressBar控件来实时显示下载进度,我是通过接口获取每个线程对应的下载进度在item的ProgressBar更新的,最开始我把这个部分处理在Adpater里面处理的。结果我用尽各种办法都没有实现让他实时更新ProgeressBar进度。

       纠结了几天过后,我在网上查了一些资料。最终找到了解决方法,这里感谢一下大佬给我指了路。方法就是在listView所在Activity里面对每个item进度进行更新。先通过ListView的getChildAt(int postion)的方法获取对应的item,然后在UI线程更新对应的progressBar值。

代码如下

 private  void  proProgress(final  int  adapterPostion, final int pro){downFileTaskManger.getData().get(adapterPostion).setPro(pro);if(adapterPostion>=xListView.getFirstVisiblePosition()&&adapterPostion<=xListView.getLastVisiblePosition()){int   postionVIew =  adapterPostion  - xListView.getFirstVisiblePosition();View item  =   xListView.getChildAt(postionVIew);ProgressBar progressBar  =  (ProgressBar) item.findViewById(R.id.item_down_pro);progressBar.setProgress(pro);if(pro==100){TextView  state =  (TextView) item.findViewById(R.id.item_down_size);data.get(postionVIew).setfSzie("完成");state.setText("本地/xyztc");}}}

备注:

1、这个方法要放在ListView所在Activity类里面,adapterPostion为要更新的item位置,pro为进度值。

2、此方法需要放在UI线程执行我用的Handler机制如下

new Handler(XzZlActivity.this.getMainLooper()).post(new Runnable() {@Overridepublic void run() {proProgress(pos,up);}
});

 

这篇关于android开发 ListView ProgressBar实时更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125559

相关文章

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.