一般来说,使用进度条的情况都需要新起个线程来对进度条进行显示操作。
如下面的代码:
pdialog = new ProgressDialog(MyService.this, 0);
pdialog.setButton("cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {
dialog.cancel();
}
});
pdialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
finish();
}
});
pdialog.setCancelable(true);
pdialog.setMax(1000);
pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pdialog.show();
Thread th = new Thread() {
public void run() {
try {
while(!isFinish && pdialog.getProgress() < 1000) { // 该处的变量由其他线程来改变。
pdialog.incrementProgressBy(10);
Thread.sleep(10); // 此处只为观看效果而加
}
pdialog.cancel();
} catch (InterruptedException e) {
pdialog.cancel();
}
}
};
th.start();
startService(i);
对以上代码说明:
1、ProgressDialog的构造方法:第一个参数表明改Dialog的所有者,第二个参数表明该Dialog的Theme样式。
2、pdialog.setButton为该Dialog添加Button
3、pdialog.setOnCancelListener为Dialog添加取消事件的监听。当然使用此监听要把Dialog的canelable设置为true。
4、pdialog.setProgressStyle设置Dialog的Style。一种为ProgressDialog.STYLE_SPINNER,表示圆圈循环类型;一种为ProgressDialog.STYLE_HORIZONTAL,表示水平类型。从常量名很容易区分。
本文详细介绍了如何使用ProgressDialog来展示操作进度。通过实例代码演示了如何创建、设置样式、添加按钮及监听器等,并通过线程控制进度更新。
2426

被折叠的 条评论
为什么被折叠?



