Android ProgressBar进度条和ProgressDialog进度框的展示
让我们深入一下在Android开发中经常遇到的耗时操作问题。这时候,进度条和进度框就派上了用场。我们将详细一个展示ProgressBar进度条和ProgressDialog进度框的DEMO。让我们一起这个DEMO的运行方式和应用特点。
一、对话框的关闭
在应用程序中,我们经常需要显示对话框以向用户展示信息或等待某些操作完成。当对话框不再需要时,我们需要正确地关闭它。以下是一段关闭对话框的代码:
```java
myDialog.dismiss();
```
二、进度条对话框的动态显示
在应用程序中,进度条对话框是非常有用的,可以显示任务完成的进度。这里介绍两种动态显示进度条刻度的方法。
1. 使用handle方法
我们为进度条对话框的“handle”按钮添加一个监听器。当用户点击该按钮时,进度条将开始显示。我们创建一个新的线程来模拟进度条的动态更新。以下是代码示例:
```java
//进度条handle按钮监听
class ProgressBarHandleButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
progressBarHandle.setVisibility(View.VISIBLE);
myProgressBarHandleText.setVisibility(View.VISIBLE);
progressBarHandle.setMax(1000);
new Thread() {
public void run() {
for(int i=0; i<=1000;) {
try {
//在这里模拟进度条的更新
Message msg = new Message();
msg.what = 1;
msg.getData().putInt("size", i);
handler.sendMessage(msg); //handle发送消息
//为了演示效果,暂停1秒
sleep(100);
i+=10;
} catch (Exception e) {
handler.obtainMessage(-1).sendToTarget();
e.printStackTrace();
}
}
}
}.start(); // 开始运行线程
}
}
//handle接收消息
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
progressBarHandle.setProgress(msg.getData().getInt("size"));
float num = (float)progressBarHandle.getProgress()/(float)progressBarHandle.getMax();
int result = (int)(num 100); //注意这里原代码有错误,应为num 100而非num100
System.out.println("进度条当前进度:"+progressBarHandle.getProgress());
myProgressBarHandleText.setText(result+ "%");
if(progressBarHandle.getProgress()==progressBarHandle.getMax()){
Toast.makeText(ProgressbarDemo.this, "下载成功", Toast.LENGTH_SHORT).show();
progressBarHandle.setVisibility(View.GONE);
myProgressBarHandleText.setVisibility(View.GONE);
}
break;
case -1:
Toast.makeText(ProgressbarDemo.this,"下载失败", Toast.LENGTH_SHORT).show();
break;
}
}
};
```
编程语言
- Android ProgressBar进度条和ProgressDialog进度框的展示
- Symfony2安装第三方Bundles实例详解
- Bootstrap风格的WPF样式
- 基于jQuery实现的扇形定时器附源码下载
- javascript设计模式之模块模式学习笔记
- 原生javascript实现解析XML文档与字符串
- php die()与exit()的区别实例详解
- ASP.NET中 TextBox 文本输入框控件的使用方法
- mysql执行计划id为空(UNION关键字)详解
- 微信小程序 授权登录详解(附完整源码)
- javascript中$(function() {});写与不写有哪些区别
- MSSQL差异备份取系统权限的相关软件下载
- PHP PDOStatement--setFetchMode讲解
- 如何在Linux上安装Node.js
- xhEditor的异步载入实现代码
- php创建session的方法实例详解