【android】 ProgressDialog的使用
2011-03-20 11:08
369 查看
package com.shao.android;
import java.util.Random;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private static final int MAX_Progress=100;
private ProgressDialog progressDialog;
private Handler progressHandler;
private int progress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1=(Button)findViewById(R.id.btn1);
Button button2=(Button)findViewById(R.id.btn2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.btn1:
showProgressDialog(ProgressDialog.STYLE_HORIZONTAL);
break;
case R.id.btn2:
showProgressDialog(ProgressDialog.STYLE_SPINNER);
break;
}
}
// 显示进度对话框,style表示进度对话框的风格
private void showProgressDialog(int style)
{
progressDialog=new ProgressDialog(this);
progressDialog.setIcon(R.drawable.wait);
progressDialog.setTitle("正在处理数据...");
progressDialog.setMessage("请稍后...");
// 设置进度对话框的风格
progressDialog.setProgressStyle(style);
// 设置进度对话框的进度最大值
progressDialog.setMax(MAX_Progress);
// 设置进度对话框的【暂停】按钮
progressDialog.setButton("暂停", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
// TODO Auto-generated method stub
// 通过删除消息代码的方式停止定时器的执行
progressHandler.removeMessages(1);
// 恢复进度初始值
progress=0;
progressDialog.setProgress(0);
}
});
progressDialog.show();
progressHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// if (progressDialog.getProgress() >= MAX_PROGRESS)
if(progress>=MAX_Progress)
{
// 进度达到最大值,关闭对话框
progress=0;
progressDialog.dismiss();
}
else {
progress++;
// 将进度递增1
progressDialog.incrementProgressBy(1);
// 随机设置下一次递增进度(调用handleMessage方法)的时间
progressHandler.sendEmptyMessageDelayed(1,50+ new Random().nextInt(500));
}
}
};
// 设置进度初始值
progress=(progress>0)?progress:0;
progressDialog.setProgress(progress);
progressHandler.sendEmptyMessage(1);
}
}
import java.util.Random;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private static final int MAX_Progress=100;
private ProgressDialog progressDialog;
private Handler progressHandler;
private int progress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1=(Button)findViewById(R.id.btn1);
Button button2=(Button)findViewById(R.id.btn2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.btn1:
showProgressDialog(ProgressDialog.STYLE_HORIZONTAL);
break;
case R.id.btn2:
showProgressDialog(ProgressDialog.STYLE_SPINNER);
break;
}
}
// 显示进度对话框,style表示进度对话框的风格
private void showProgressDialog(int style)
{
progressDialog=new ProgressDialog(this);
progressDialog.setIcon(R.drawable.wait);
progressDialog.setTitle("正在处理数据...");
progressDialog.setMessage("请稍后...");
// 设置进度对话框的风格
progressDialog.setProgressStyle(style);
// 设置进度对话框的进度最大值
progressDialog.setMax(MAX_Progress);
// 设置进度对话框的【暂停】按钮
progressDialog.setButton("暂停", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
// TODO Auto-generated method stub
// 通过删除消息代码的方式停止定时器的执行
progressHandler.removeMessages(1);
// 恢复进度初始值
progress=0;
progressDialog.setProgress(0);
}
});
progressDialog.show();
progressHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
// if (progressDialog.getProgress() >= MAX_PROGRESS)
if(progress>=MAX_Progress)
{
// 进度达到最大值,关闭对话框
progress=0;
progressDialog.dismiss();
}
else {
progress++;
// 将进度递增1
progressDialog.incrementProgressBy(1);
// 随机设置下一次递增进度(调用handleMessage方法)的时间
progressHandler.sendEmptyMessageDelayed(1,50+ new Random().nextInt(500));
}
}
};
// 设置进度初始值
progress=(progress>0)?progress:0;
progressDialog.setProgress(progress);
progressHandler.sendEmptyMessage(1);
}
}
相关文章推荐
- Android自定义progressDialog使用系统ProgressBar与图片实现(一)系统ProgressBar
- Android中AlertDialog和ProgressDialog的使用
- Android带进度条对话框ProgressDialog的使用
- Android ProgressDialog的使用
- android关于ProgressBar和ProgressDialog的使用
- android开发 phonegap插件开发中ProgressDialog的使用 转
- android两个Activity跳转之间使用ProgressDialog方法
- Android 屏幕旋转(方向和configChanges) 处理 AsyncTask 和 ProgressDialog 的最佳方案(DialogFragment 使用 续)
- Android笔记(6) ---ProgressBar和ProgressDialog的使用
- Android ProgressDialog使用
- Android 之 progressdialog的简单使用(部分代码)
- android 自动更新APP版本,并使用ProgressDialog显示进度
- android中ProgressDialog与ProgressBar的使用
- Android中如何判别WebView加载完毕并使用ProgressDialog进行提示
- Android开发实战之——ProgressDialog的使用(一)
- Android自定义progressDialog使用系统ProgressBar与图片实现(二)使用图片
- Android之使用参数改变ProgressDialog的位置、大小、背景透明度、屏幕透明度
- 如何正确地使用android中的progressdialog
- 【Android】33、常见控件的使用方法——ProgressDialog
- Android ProgressDialog的使用