ProgressDialog
[功能]
ProgressDialog 也是一种Dialog
一般 在出现ProgressDialog 后台都会再开辟Thread 来做一些耗时的工作 我演示的是从100数到0 这段时间既不太长 不用浪费时间等待 同时 也能明显地看出效果
[代码]
1. ProgressDialog 使用
public void startProgress(){
//to start Progress
pd = ProgressDialog.show(this, "loop from 100 to 0!", "is looping...", true,
false);
//pd.setIcon(R.drawable.icon);
}
2. 开辟一个Thread来从100数到0 在数完后 关闭ProgressDialog
public class TaskLoop implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
loop(5000);
messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);
}
}
public void loop(long i){
long j = i;
while(j>0){
Log.d("tag",j+"");
j = j-1;
}
}
3. 运行该Thread
Thread loop = new Thread(new TaskLoop());
loop.start();
4.定义一个Handler 用于接受 关闭ProgressDialog 的通知
private Handler messageListener = new Handler(){
public void handleMessage(Message msg) {
switch(msg.arg1){
case TASK_LOOP_COMPLETE:
pd.dismiss();
break;
}
}
};
[所有代码]
public class MyProgressUsage extends Activity {
public final static int TASK_LOOP_COMPLETE = 0;
ProgressDialog pd;
TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.start).setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
startLoop();
}
});
}
public void startLoop(){
startProgress();
Thread loop = new Thread(new TaskLoop());
loop.start();
}
public class TaskLoop implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
loop(5000);
messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);
}
}
public void startProgress(){
//to start Progress
pd = ProgressDialog.show(this, "loop from 100 to 0!", "is looping...", true,
false);
//pd.setIcon(R.drawable.icon);
}
//to do some time-cost task
public void loop(long i){
long j = i;
while(j>0){
Log.d("tag",j+"");
j = j-1;
}
}
private Handler messageListener = new Handler(){
public void handleMessage(Message msg) {
switch(msg.arg1){
case TASK_LOOP_COMPLETE:
pd.dismiss();
break;
}
}
};
}
http://dl.iteye.com/upload/picture/pic/52676/11cd6622-cb13-337a-bd52-007185e972c0.png
over!
分享到:
相关推荐
这篇文章将对Android ProgressDialog的使用进行详细总结。 首先,我们来看ProgressDialog的创建方式: 1. **方式一**:直接通过构造函数创建一个ProgressDialog对象,然后调用`show()`方法显示。例如: ```java ...
在内部,ProgressDialog使用了一个ProgressDrawable对象来绘制进度条,我们可以通过反射或者自定义DialogFragment来修改这个drawable,以实现更复杂的进度条效果。 然而,随着Android版本的更新, ProgressDialog在...
在本文中,我们将深入探讨如何在Android应用程序中有效地使用自带的ProgressDialog。 首先,ProgressDialog有两种主要类型:`ProgressDialog`和`ProgressBar`。`ProgressDialog`是模态对话框,它会阻止用户与应用的...
在你的压缩包文件`MyProressBar`中,可能包含了一个自定义进度条的实现,或者是一个封装了ProgressDialog使用方式的工具类。通过查看这个文件,你可以学习如何将默认的ProgressDialog与自定义的菊花加载效果结合,...
这个"android中ProgressDialog的使用"主题主要涵盖了如何在Android应用中创建、配置和管理ProgressDialog,以及相关的最佳实践。 1. **ProgressDialog的创建** ProgressDialog可以通过继承自Activity的`showDialog...
在“ProgressDialog进度条使用Demo”中,我们将学习如何在Android应用中有效地使用ProgressDialog。以下是一些关键知识点: 1. **导入依赖**:首先,确保在项目的build.gradle文件中包含了对Android支持库的依赖,...
这个demo旨在为初学者展示如何有效地使用ProgressDialog,以便他们在自己的应用中实现类似功能。 在Android开发中,ProgressDialog通常有两种样式:圆形进度条和水平进度条。圆形进度条常用于未知进度的任务,而...
通过以上讲解,你应该对在Android中使用`ProgressBar`和`ProgressDialog`有了深入的理解。在DialogTest项目中,你可以找到这些概念的具体实现,这将有助于你进一步熟悉和掌握这两个控件的使用。记住,良好的用户体验...
本文将详细介绍如何创建和使用`ProgressDialog`,以及相关知识点。 首先,`ProgressDialog`是`AlertDialog`的一个子类,因此它的用法与`AlertDialog`类似,但提供了更具体的进度展示功能。创建`ProgressDialog`的...
在使用自定义ProgressDialog时,可以通过这些方法控制加载状态: ```java CustomProgressDialog progressDialog = new CustomProgressDialog(this); progressDialog.startLoading(5000); // 5秒后自动停止 ...
本主题主要关注两种常见的对话框:AlertDialog和ProgressDialog,以及如何与基础控件如TextView、Button、EditText和ImageView结合使用。 **AlertDialog** AlertDialog是Android SDK提供的一种模态对话框,它有三...
android 自定义组合progressdialog进度条,方便你的使用............................................................................................
在使用ProgressDialog时,我们通常会用到以下关键方法: 1. `show()`: 显示ProgressDialog。 2. `dismiss()`: 隐藏或取消ProgressDialog。 3. `incrementProgressBy(int increment)`: 增加进度条的值。 4. `...
这个组件的出现主要是为了解决在Android原生ProgressDialog使用过程中可能出现的各种问题,如UI卡顿、内存泄漏以及样式不统一等。 首先,原生的Android ProgressDialog有时可能会导致用户界面冻结,给用户带来不...
android自定义ProgressDialog样式详解,一分钟教会你如何自定义android样式。
在Android开发中,`ProgressDialog`是系统提供的一种用于显示进度的对话框,通常在执行耗时操作如数据加载、文件上传或下载时使用,给用户一个反馈,让他们知道应用程序正在处理事务而不会卡死。然而,系统默认的`...
首先,我们需要了解ProgressDialog的基本使用。它有两种形式:一种是带圆形进度条的,另一种是不带进度条的文字提示。通过`ProgressDialog.show()`方法可以创建并显示ProgressDialog,通过`ProgressDialog.dismiss()...
3. **使用自定义ProgressDialog**:在需要显示自定义ProgressDialog的地方,实例化这个类并调用`show()`方法。 ```java CustomProgressDialog dialog = new CustomProgressDialog(context); dialog.show(); ``` 4....
可以使用AsyncTask或者其他异步处理机制,在任务开始时显示ProgressDialog,任务执行过程中更新进度,任务结束后关闭ProgressDialog。 例如,以下是一个使用AsyncTask的简单示例: ```java private class ...