Android中的对话框(二)ProgressDialog
来源:互联网 发布:剑三迪丽热巴捏脸数据 编辑:程序博客网 时间:2024/05/17 04:21
上篇我们详细介绍了AlertDialog
这次介绍ProgressDialog
ProgressDialog 写了三种形式
第一种:环形进度条
private ProgressDialog pd1, pd2 ,pd3;
//调用静态方法显示环形进度条pd1 = ProgressDialog.show(ProgressDlgActivity.this, "任务执行中", "任务执行中, 请等待", false, true); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(5000); Log.e("xxxxx", "----> 执行"); pd1.dismiss(); } catch (InterruptedException e) { e.printStackTrace(); } } }).start();注意:这里是调用了静态方法, 我的理解是可以直接用类方法,但是我需要过5秒后暂停, 就用pd1的对象了, 在线程中5秒后执行dismiss()方法把pd1销毁. 效果图如下 :
第二种: 不显示进度的进度条
pd2 = new ProgressDialog(this); pd2.setTitle("我是一个进度条"); pd2.setMessage("请稍等"); // 设置对话框可以用取消按钮关闭 pd2.setCancelable(true); pd2.setButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); // 设置对话框的进度条风格 <span style="color:#ff6666;">pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);</span> //设置对话框的进度条是否显示进度 pd2.setIndeterminate(true); //显示控件 pd2.show(); Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { pd2.dismiss(); } }; //3秒后关闭 timer.schedule(task, 5000);注意: 这里我们可以看出 设置进度条的重要方法是 getProgressStyle 根据不同的STYLE ,就能选择出系统给出的不同样式,效果图如下:
第三种: 显示进度的进度条
第三种进度条, 是要把下载的进度显示出来, 这就需要我们实时更新数据, 开辟子线程,只把值回传.<span style="font-size:18px;">private int hasData = 0;private int progressStatus = 0;final static int MAX_PROGRESS = 100;private int []data = new int[50];private Handler handler;</span><span style="font-size:18px;"></span><pre style="background-color: rgb(255, 255, 255); font-family: Monaco;"><pre name="code" class="java">pd3 = new ProgressDialog(this); pd3.setTitle("再看这个进度条 , 任务完成百分比"); pd3.setMessage("耗时任务的完成百分比"); //将进度条的完成进度设为0 progressStatus = 0; hasData = 0; pd3.setMax(MAX_PROGRESS); pd3.setCancelable(false); pd3.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd3.setIndeterminate(false); pd3.show();new Thread(new Runnable() { @Override public void run() { while (progressStatus < MAX_PROGRESS){ progressStatus = MAX_PROGRESS * doWork() /data.length; handler.sendEmptyMessage(500); } if (progressStatus >= MAX_PROGRESS){ pd3.dismiss(); } } }).start();public int doWork(){ data[hasData ++] = (int )(Math.random() * 100); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } return hasData; }效果如下 :
我们在alertDialog中发现, 一般用 AlertDiaolg.builder这个类来实现, 实现的方法都大同小异,区别在于:根据不同的提示内容需要, 选择不同的形式, ProgressDialog也是如此, 它的重要方法就是设置style.
至此 ,常用的两种Dialog就介绍完了, 还有一种简单的日期选择提示框, 用Calendar这个类来实现,有兴趣的朋友可以看一下,非常简单 但界面做的非常好,效果图如下, 点击OK 就能获得选择的年月日,可以放到textView中显示
0 0
- Android中的对话框(二)ProgressDialog
- android知识点二:ProgressDialog对话框
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 (ProgressDialog)
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 ProgressDialog
- Android对话框(二)进度条对话框ProgressDialog和自定义对话框CustomDialog
- Android 对话框中的进度条 ProgressDialog
- Android 对话框 (AlertDialog & ProgressDialog)
- Android ProgressDialog进度条对话框
- Android进度对话框(ProgressDialog)
- 【Android】进度条对话框ProgressDialog
- Android ProgressDialog 进度条对话框
- Android 应用开发笔记 - 对话框中的进度条(ProgressDialog)
- android应用开发揭秘之examples_04_24(ProgressDialog对话框中的进度条)
- 对话框中的进度条(ProgressDialog)
- android实践--进度对话框(ProgressDialog)
- [leetcode] 220. Contains Duplicate III 解题报告
- ubuntu安装MySQL
- C++容器中勿使用memset,memcpy等
- 64位weblogic11g安装
- linearlayout线性布局属性
- Android中的对话框(二)ProgressDialog
- 【NOI2001】聪明的打字员 - 类似8数码的搜索题
- Android在layout xml中使用include
- MySql索引的原理
- 使用Python脚本将酷狗音乐的缓存文件修改为可播放
- 详解C/C++中预处理器
- IOS从屏幕截图并裁剪压缩到指定宽高
- jquery获取触发方法的对象
- hdu3416