`
yyyyy5101
  • 浏览: 151477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ProgressDialog

阅读更多
为了安抚用户等待的焦急心情,我们用ProgressDialog。它的用法书上有例子,就是:

ProgressDialog myDialog = ProgressDialog.show(YourClass.this, "", "请稍后", true, true);

handler.post(mTasks);


   然而,我们用它一般都是在用intent开启一个新的activity的时候,你直接加上这句话,是达不到你想要的效果的。

你必须这样用:把用intent开启activity的这件事放在一个Runnable对象的run()方法中,然后用handler.post()方法来运行这个线程。代码如下:


Handler handler = new Handler();

Runnable mTasks = new Runnable() {


public void run() {

   Intent intent = new Intent();

   intent.setClass(YourClass .this,

   EditHome.class);


   startActivity(intent);

   }

};

final ProgressDialog myDialog = ProgressDialog.show(YourClass .this, "", "请稍后", true, true);

handler.post(mTasks);


这样算是达到我们要的效果了,可是,那个ProgressDialog的窗口并没有关闭,所以后面还要加上

myDialog.dismiss();

但这样的话,窗口出来就消失,我们又看不到ProgressDialog了...所以,我们要用一个线程来控制窗口消失的时间:

new Thread() {

   public void run() {

    try {

     sleep(5000);

       } catch (InterruptedException e) {

        e.printStackTrace();

         }

       myDialog.dismiss();

      }

   }.start();


   那个sleep的时间是你估算下一个activity显示出来所需要的时间。OK了。

   但显然这样做是不科学的。科学的做法是:首先在原avtivity中添加一个关闭Dialog的静态方法:

public static void closeProgressDialog() {

   myDialog.dismiss();

}

然后在目标的activity中添加两个成员变量:



private static final int EVENT_TIME_TO_CHANGE_IMAGE = 100;


private Handler mHandler = new Handler() {


public void handleMessage(Message msg) {


    switch (msg.what) {


        case EVENT_TIME_TO_CHANGE_IMAGE:

              YourPrimaryClass.closeProgressDialog();

       break;

      }

    }

};


   其中Handler中注册了关闭窗口的条件和关闭动作(调用静态方法)。然后在这个activity的onCreat()方法里的最后面加上发送消息的代码:

Message message = mHandler.obtainMessage(EVENT_TIME_TO_CHANGE_IMAGE);


      mHandler.sendMessage(message);


  这样就能保证是在目标activity全部显现出来之后关闭那个progressDialog了
分享到:
评论
2 楼 rdrsd 2012-07-14  
按照上面的方法做了,但进度条框里的进度不会改变啊
1 楼 thinkinnight 2010-10-11  
为什么不在
Runnable mTasks = new Runnable() {


public void run() {

   Intent intent = new Intent();

   intent.setClass(YourClass .this,

   EditHome.class);


   startActivity(intent);

   }

};
这里面加上dialog.dismiss()呢?

相关推荐

    android ProgressDialog 自定义样式

    在Android开发中,ProgressDialog是一个非常常见的组件,用于在应用程序执行耗时操作时向用户显示进度。然而,系统默认的ProgressDialog样式可能无法满足所有设计需求,因此开发者常常需要对其进行自定义,以实现更...

    android 自定义组合progressdialog进度条

    android 自定义组合progressdialog进度条,方便你的使用............................................................................................

    android 中ProgressDialog实现全屏效果的示例

    做项目的时候,直接用到了一个ProgressDialog,需要实现全屏的效果,如下图所示,功能跑起来的时候发现不是全屏,只是包裹了当前的内容,如下图所示,不过查找一些资料,把问题解决了。 ProgressDialog 继承自...

    android 自定义ProgressDialog对话框

    在Android开发中,ProgressDialog是一种常见的UI组件,用于在执行耗时操作时向用户显示进度,以提供更好的用户体验。默认的ProgressDialog通常包含一个圆形进度条,但有时为了满足特定的界面设计或功能需求,开发者...

    ProgressDialog_android源码_

    在Android开发中,ProgressDialog是一个非常常见的组件,它用于在用户界面执行长时间操作时显示一个进度条,给用户反馈,表明应用程序仍在运行并处理任务。在标题"ProgressDialog_android源码_"中,我们关注的是这个...

    android自定义ProgressDialog样式

    android自定义ProgressDialog样式详解,一分钟教会你如何自定义android样式。

    progressDialog 自定义颜色与样式

    在Android开发中,ProgressDialog是一个非常常用的组件,它用于在后台任务执行时向用户展示进度,以告知用户应用程序正在处理某些操作。本教程将详细介绍如何自定义ProgressDialog的颜色与样式,以使其更加符合应用...

    android中透明Dialog及ProgressDialog的实现

    在Android开发中,Dialog和ProgressDialog是两种常用的UI组件,用于向用户展示临时信息或进行阻塞操作时的反馈。本文将详细介绍如何在Android中创建透明背景的Dialog和ProgressDialog,以及涉及的相关XML资源。 ...

    安卓自定义Dialog带有进度条的效果的ProgressDialog

    ProgressDialog是Dialog的一种特殊形式,它显示一个进度条,通常用于指示后台任务的执行进度,比如文件下载、数据加载等。在这个“安卓自定义Dialog带有进度条的效果的ProgressDialog”示例中,我们将深入探讨如何...

    自定义加载对话框ProgressDialog

    在Android开发中,自定义加载对话框ProgressDialog是一种常见的需求,特别是在执行耗时操作如网络请求、数据处理等场景,为了提供良好的用户体验,我们通常会显示一个加载指示器,让用户知道应用正在后台工作。...

    Android 自定义ProgressDialog实例

    在Android开发中,ProgressDialog是一种常见的UI组件,用于在应用程序执行耗时操作时向用户显示进度指示,例如网络请求、数据加载等。然而,系统默认的ProgressDialog样式可能无法满足所有设计需求,因此开发者经常...

    自定义进度对话框ProgressDialog

    在Android开发中,ProgressDialog是一种常见的UI组件,用于在执行耗时操作时向用户展示进度,如数据加载、文件下载等。这个"自定义进度对话框ProgressDialog"项目提供了一个可以直接运行的示例,帮助开发者理解如何...

    Android 定义了两种常用的ProgressDialog进度对话框源码.rar

    本源码主要是演示在Android中使用ProgressDialog,定义了两种常用的ProgressDialog进度对话框,一种是长形进度条,这是最早时候的进度条,有点像windows 7风格,另外上一种是圆形的进度条,这种进度条风格在目前的...

    progressDialog进度对话框的创建

    在Android开发中,`ProgressDialog`是一个非常常用的组件,它用于在执行耗时操作(如上传、下载或保存数据)时向用户提供反馈,显示一个带有进度条的对话框,阻止用户与应用的其他部分进行交互,直到操作完成。...

    Android 自带progressDialog的使用

    在Android开发中,ProgressDialog是一个非常常见的组件,它用于在用户执行耗时操作(如网络请求、数据加载等)时提供反馈,展示一个等待界面。在本文中,我们将深入探讨如何在Android应用程序中有效地使用自带的...

    Android 自定义progressDialog实现

    在Android开发中,自定义`ProgressDialog`是一种常见的需求,它允许开发者根据应用的UI风格定制加载提示界面。本文将深入探讨如何实现一个自定义的`ProgressDialog`,并结合源码和工具来创建一个符合设计需求的加载...

    android中ProgressDialog的使用

    在Android开发中,ProgressDialog是一个非常常用的组件,它用于在应用程序执行长时间操作时向用户显示进度指示器,以增强用户体验,防止用户误操作。这个"android中ProgressDialog的使用"主题主要涵盖了如何在...

    简单便于集成的自定义ProgressDialog

    在Android开发中,ProgressDialog是一种常见的UI组件,用于在应用程序执行耗时操作时向用户显示进度。自定义ProgressDialog可以使开发者根据项目需求定制对话框的样式、功能和交互,使其更符合品牌形象或者提供更好...

    android demo,ProgressDialog的源代码的实现。

    在Android开发中,ProgressDialog是一个非常常见的组件,它用于在用户等待长时间操作完成时显示一个进度指示器,以提供用户友好的界面体验。本篇将详细探讨`ProgressDialog`的源码实现,以及如何在Android应用中使用...

Global site tag (gtag.js) - Google Analytics