1、布局文件progress_dialog_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Button
android:id="@+id/btn_progress_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_progress_dialog_text"
android:layout_gravity="center_horizontal"/>
</LinearLayout>

2、Activity类ProgressDialogActivity.java

package cn.luxh.dialognew;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class ProgressDialogActivity extends Activity { private Button btn_progress_dialog; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progress_dialog_activity);
handleBtnProgressDialogClick();
} /**
* 处理按钮事件
*/
private void handleBtnProgressDialogClick() {
btn_progress_dialog = (Button) findViewById(R.id.btn_progress_dialog);
btn_progress_dialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
createProgressDialog();
}
});
} /**
* 生成进度对话框
*/
private void createProgressDialog() {
//显示进度对话框
final ProgressDialog progressDialog = ProgressDialog.show(this, "提示", "处理中..."); //业务处理
new Thread(new Runnable(){
@Override
public void run() {
try {
Thread.sleep(10000);
progressDialog.dismiss();//取消进度对话框
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
} }

3、运行效果


  一个带实时进度的对话框

代码如下:

package cn.luxh.dialognew;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class ProgressDialogActivity extends Activity { private Button btn_progress_dialog; private ProgressDialog progressDialog; private static final String TAG = "ProgressDialogActivity"; //控制线程中断
private static boolean isRun = true; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progress_dialog_activity);
handleBtnProgressDialogClick();
} /**
* 处理按钮事件
*/
private void handleBtnProgressDialogClick() {
btn_progress_dialog = (Button) findViewById(R.id.btn_progress_dialog);
btn_progress_dialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
isRun = true;
createProgressDialog2();
progressDialog.show();
progressDialog.setProgress(0);
new Thread(new Runnable(){
@Override
public void run() {
int i = 1;
while(isRun && i<=20) {
try {
Log.d(TAG, "i is:"+i);
Thread.sleep(1500);
progressDialog.incrementProgressBy(100/20);
i++;
} catch (InterruptedException e) {
isRun = false;//中断线程
e.printStackTrace();
}
}
}
}).start();
}
});
} /**
* 生成进度对话框
*/
private void createProgressDialog2() {
progressDialog = new ProgressDialog(this);
progressDialog.setIcon(R.drawable.ic_launcher);
progressDialog.setTitle("实时进度...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCancelable(false);//设置模态窗口
progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
isRun = false;//中断线程
Toast.makeText(getBaseContext(), "确定按钮被点击!", Toast.LENGTH_SHORT).show();
}
});
progressDialog.setButton(ProgressDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
isRun = false;//中断线程
Toast.makeText(getBaseContext(), "取消按钮被点击!", Toast.LENGTH_SHORT).show();
}
});
}
}

运行效果:

Android--创建进度框ProgressDialog的更多相关文章

  1. Android 下载进度对话框 ProgressDialog

    protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV ...

  2. Android开发系列(二十七):使用ProgressDialog创建进度对话框

    进度对话框在寻常的应用中非经常见,比方下载的时候,打开页面的时候.转移文件等等.有环形的.有长条形的. 基本就这两种 创建进度对话框的两种方式: 1.创建ProgressDialog实例,然后调用Pr ...

  3. Android 学习笔记之AndBase框架学习(二) 使用封装好的进度框,Toast框,弹出框,确认框...

    PS:渐渐明白,在实验室呆三年都不如在企业呆一年... 学习内容: 1.使用AbActivity内部封装的方法实现进度框,Toast框,弹出框,确认框...   AndBase中AbActivity封 ...

  4. 使用ProgressDialog创建进度对话框

    ProgressDialog代表了进度对话框,程序只要创建ProgressDialog实例,并将它显示出来就是一个进度对画框.使用ProgressDialog创建进度对话框有如下两种方式. ①如果只是 ...

  5. 2.5.6 使用progressDialog创建进度对话框

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  6. Android学习笔记_81_Android ProgressDialog ProgressBar 各种效果

    1,弹出Dialog 屏幕不变暗. 创建一个样式就OK了:在styles.xml文件里添加样式: 1, <style name="dialog" parent="@ ...

  7. android 自定义进度条颜色

    android 自定义进度条颜色 先看图 基于产品经理各种自定义需求,经过查阅了解,下面是自己对Android自定义进度条的学习过程!   这个没法了只能看源码了,还好下载了源码, sources\b ...

  8. android的进度条使用

    android的进度条 1.实现的效果 2.布局代码 先写一个my_browser.xml文件 存放WebView <?xml version="1.0" encoding= ...

  9. Android开发手记(8) ProgressDialog的使用

    ProgressDialog,进度对话框.一般有两种,一种是圆形的进度条(ProgressDialog.STYLE_SPINNER),另一种是长条形的进度条(ProgressDialog.STYLE_ ...

随机推荐

  1. 【性能诊断】九、并发场景的性能分析(windbg案例,Fist Chance Exception/Crash dump)

          经常会碰到这样的场景,自测及单单点的测试时没有任何问题,但在并发环境或生产环境下有时出现没规律的异常.报错等情况.在代码中增加日志是其中一种解决方式:抓取指定异常时的dump,通过wind ...

  2. 彻底解决ASP.NET MVC 3 404错误码返回302的问题

    转自:http://blog.csdn.net/mycloudke/article/details/9746333 404状态码:,意味着当在页面上显示用户点击不存在,提高用户体验度,搜索引擎会放弃这 ...

  3. 邮件发送工具类 SendMail.java

    package com.util; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.Simp ...

  4. ab压测参数说明

    ab是apache自带的压力测试工具,非常实用.ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也 ...

  5. php安装redis扩展

    1.windows安装redis扩展 php_redis.dll (for windows) 的下载地址:http://windows.php.net/downloads/pecl/snaps/red ...

  6. golang的连接池例子

    github.com/jolestar/go-commons-pool 测试代码 package main import ( "github.com/jolestar/go-commons- ...

  7. CSS hack样式兼容模式收藏

    part1 —— 浏览器测试仪器,测试您现在使用的浏览器类型 IE6   IE7   IE8   Firefox   Opera   Safari (Chrome)   IE6   IE7   IE8 ...

  8. Python之re模块 —— 正则表达式操作

    这个模块提供了与 Perl 相似l的正则表达式匹配操作.Unicode字符串也同样适用. 正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突, ...

  9. shell下root用户切换其他用户运行程序

    工作中,一些程序,需要随机启动,但是不是以root用户运行,于是需要在rc.local中通过shell,从root用户切换到其他用户运行程序,命令如下: su -c 'command' - user ...

  10. MongoDB的基本使用

    use library 使用use函数切换已有的数据库或创建新的数据库 show dbs 查看MongoDB中目前所有可用的数据库 show collections 查看当前数据库中的所有集合 在集合 ...