欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 中通过实现线程更新Progressdialog (对话进度条)

程序员文章站 2024-03-01 08:57:34
作为开发者我们需要经常站在用户角度考虑问题,比如在应用商城下载软件时,当用户点击下载按钮,则会有下载进度提示页面出现,现在我们通过线程休眠的方式模拟下载进度更新的演示,如图...

作为开发者我们需要经常站在用户角度考虑问题,比如在应用商城下载软件时,当用户点击下载按钮,则会有下载进度提示页面出现,现在我们通过线程休眠的方式模拟下载进度更新的演示,如图(这里为了截图方便设置对话进度条位于屏幕上方):

Android 中通过实现线程更新Progressdialog (对话进度条)

layout界面代码(仅部署一个按钮):

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下载"//真正项目时建议将文本资源统一定义配置在res下的strings.xml中
android:onclick="begin"/>
</linearlayout>

java代码实现(通过线程实现模拟下载进度更新):

public class progressbardemo extends appcompatactivity {
@override
protected void oncreate(@nullable bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.progressbar);
}
public void begin(view v) {
//实例化进度条对话框(progressdialog)
final progressdialog pd = new progressdialog(this);
pd.settitle("请稍等");
//设置对话进度条样式为水平
pd.setprogressstyle(progressdialog.style_horizontal);
//设置提示信息
pd.setmessage("正在玩命下载中......");
//设置对话进度条显示在屏幕顶部(方便截图)
pd.getwindow().setgravity(gravity.top);
pd.setmax(100);
pd.show();//调用show方法显示进度条对话框
//使用匿名内部类实现线程并启动
new thread(new runnable() {
int initial = 0;//初始下载进度
@override
public void run() {
while(initial<pd.getmax()){//设置循环条件
pd.setprogress(initial+=40);//设置每次完成40
try {
thread.sleep(1000);
} catch (interruptedexception e) {
e.printstacktrace();
}
}
pd.dismiss();//进度完成时对话框消失
}
}).start();
}
}

以上所述是小编给大家介绍的android 中通过实现线程更新progressdialog (对话进度条),希望对大家有所帮助