ProgressDialog的详细使用总结
2016-03-24 23:27
537 查看
ProgressDialog的详细使用方式总结
简单演示静态方法实例化ProgressDialog
常规方法实例化
设置样式
设置点击空白返回,返回键返回
设置按钮
调用Show方法将Dialog显示出来
进度的设置及不确定状态的使用
简单演示
常用方法总结
1.静态方法实例化ProgressDialog(只能创建圆形条)
ProgressDialog.show(Context context, CharSequence title, CharSequence message); 简单的传入参数有context , 标题 , 提示信息 另外还可以包含其他参数,见下图
2.常规方法实例化
progressDialog = new ProgressDialog(MainActivity.this);
3.设置样式
水平样式 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 圆形样式 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
标题,提示信息,图标的设置
progressDialog.setTitle("标题"); progressDialog.setMessage("提示信息"); progressDialog.setIcon(R.mipmap.ic_launcher);
设置之后的样式
水平
圆形
4.设置点击空白返回,返回键返回
progressDialog.setCancelable(true); // 能够返回 progressDialog.setCanceledOnTouchOutside(true); // 点击外部返回
5.设置按钮(最多三个)
[b]添加一个按钮,并设置点击事件[/b]progressDialog.setButton(ProgressDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progressDialog.dismiss(); } });
效果如下
[b]添加两个按钮,并设置点击事件[/b]
progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progressDialog.dismiss(); } }); progressDialog.setButton(ProgressDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progressDialog.dismiss(); } });
[b]添加三个按钮,并设置点击事件[/b]
progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progressDialog.dismiss(); } }); progressDialog.setButton(ProgressDialog.BUTTON_NEUTRAL, "中立", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progressDialog.dismiss(); } }); progressDialog.setButton(ProgressDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progressDialog.dismiss(); } });
三个按钮的效果如下:
6.调用Show方法将Dialog显示出来
progressDialog.show();
7.进度的设置及不确定状态的使用
ProgressDialog还有一个属性为意思是是否处于不确定状态,所谓的不确定状态大家应该都见过:
就是下载东西的时候正在连接服务器的时候显示的状态
进度的设置方法(默认的数值是0-100),圆形条此属性无用
progressDialog.setProgress();
此外还有一个二级进度的属性,听起来陌生但是大家应该都见过,如下:
一个颜色比较浅的进度条就称为二级进度,圆形条设置此进度无用
二级进度的设置方法
progressDialog.setSecondaryProgress();
常用的属性说完了,下面贴一下自已用来更新进度的方式
1.声明一个Runnable来产生进度(将进度用Handler发出)
private Runnable runnable = new Runnable() { @Override public void run() { int i = 0; while (true) { try { Thread.sleep(200); i++; handler.sendEmptyMessage(i); } catch (Exception e) { } } } };
2.使用Handler来接收消息更新UI(设置二级进度在达到尽头之前一直比一级进度多20),代码如下
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (progressDialog != null) { progressDialog.setProgress(msg.what % 100); progressDialog.setSecondaryProgress(msg.what % 100 < 100 ? msg.what % 100 + 20 : 100); } } };
剩下的代码就是基础的onClick事件,就不贴了
测试代码已分享到Github – ProgressDialogTest晚安
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories