Android ProgressBar进度条和ProgressDialog进度框的展示

网络编程 2025-03-29 19:37www.168986.cn编程入门

让我们深入一下在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;

}

}

};

```

上一篇:Symfony2安装第三方Bundles实例详解 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by