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. 文件/目录部分处理工具类 DealDir.java

    package com.util; import java.io.File; import java.util.StringTokenizer; /** * 文件/目录 部分处理 * @createT ...

  2. eclipse新建web项目,运行后在tomcat安装目录下webapps中没有该项目

    一.发现问题在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并没 ...

  3. phpcmsv9如何实现添加栏目时不在首页内容区显示只在导航栏显示

    之前王晟璟一直使用PHPCMSV9系统建过自己的个人门户网站,同时也建立了一个其他类型的网站,感觉非常不错,我不得不说PHPCMSV9的功能非常齐全,非常强大. 但有一点时常让王晟璟感到很烦脑,那就是 ...

  4. 关于 Android导出apk时碰到的[Unable to execute dex: Multiple dex files define]

    这是一个编译错误,在ADT的编译器和SDK的工具有差异或是版本不一致时常会出现的一个问题,解决的方案如下: 第一步: updated eclipse (Help->Check for updat ...

  5. MATLAB GUI对话框设计(转载)

    原文地址:http://blog.csdn.net/shuziluoji1988/article/details/8532982 1.公共对话框: 公共对话框是利用windows资源的对话框,包括文件 ...

  6. Linux中文件描述符fd和文件指针flip的理解

    转自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...

  7. 黄聪:Xmind修改默认字体风格设置

    Xmind是一款非常好用的思维导图软件,但默认字体使用宋体不够好看,软件本身不支持设置默认字体,但通过修改配置文件达到配置默认字体的目的 默认控制风格的配置文件位置 XMind\plugins\org ...

  8. SSH登录很慢问题的解决

    用ssh连其他linux机器,会等待10-30秒才有提示输入密码.严重影响工作效率.登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因: 1. DNS反向解析的问题 OpenSSH在用户登录的 ...

  9. unity客户端与c++服务器之间的简单通讯_1

    // 服务器 # pragma once using namespace std; # include <iostream> # include <string> # incl ...

  10. spark单机模式简单搭建

    待安装列表hadoophivescalaspark一.环境变量配置:~/.bash_profilePATH=$PATH:$HOME/bin export PATH JAVA_HOME=/usr/loc ...