中常用的两种ProgressDialog

Android_UI_中常用的两种ProgressDialog,当手机跟服务器进行数据交互的时候,我们不能把耗时的操作放在主线程中,要做的事情就是异步.

而要异步,我们也要在界面上反馈一个信息给用户,让用户知道应该等待数据下载....

先看两张图,这就是最常用的异步弹出窗口了

免费下载地址在

用户名与密码都是

具体下载目录在 /pub/Android源码集锦/2011年/12月/Android_UI_中常用的两种ProgressDialog/

中常用的两种ProgressDialog

中常用的两种ProgressDialog

上代码吧 都比较简单,关于线程,看了比较多的建议...不管是线程也好还是其他什么都好,android是一个手机客户端,

大家在写代码的同时还是非常有必要针对内存优化,代码健壮做一些相应上的代码优化的.

比如 少用new的关键字,对象多复用..等等.我再这里就不叙述了,我个人也不是非常的强悍

package tree.love.UI.Demo.ProgressDialog.activity;   import tree.love.UI.Demo.ProgressDialog.R;   import android.app.Activity;   import android.app.ProgressDialog;   import android.os.Bundle;   import android.os.Handler;   import android.os.Message;   import android.view.View;   import android.view.View.OnClickListener;   public class HomeActivity extends Activity implements OnClickListener   {       private ProgressDialog loadingDialog = null;       /** 第一种风格 **/       private static final int LOADING_STYLE_01 = 1 ;       /** 第二种风格 **/       private static final int LOADING_STYLE_02 = 2 ;       @Override       protected void onCreate(Bundle savedInstanceState)       {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           findViewById(R.id.button).setOnClickListener(this);           findViewById(R.id.button1).setOnClickListener(this);       }       @Override       public void onClick(View v)       {           switch (v.getId())           {               case R.id.button://按钮1                    loadingDialog = PrintAlertUtil.showDialog(this"正在下載...");                   Thread thread01 = new Thread(new Runnable() {                                              @Override                       public void run()                       {                           downLoad(5,false);                       }                   });                   thread01.start();                   break;               case R.id.button1://按钮2                    loadingDialog = PrintAlertUtil.showDialog(this"正在更新"100);                   Thread thread02 = new Thread(new Runnable() {                                              @Override                       public void run()                       {                           downLoad(10,true);                       }                   });                   thread02.start();                   break;           }       }       private Handler mHandler = new Handler() {           @Override           public void handleMessage(Message msg)           {               super.handleMessage(msg);               switch (msg.what)               {                   case LOADING_STYLE_01:                       //关闭对话框                        PrintAlertUtil.dismissDialog(loadingDialog);                       //提示                        PrintAlertUtil.showToast(HomeActivity.this, msg.obj.toString());                       break;                                          case LOADING_STYLE_02:                       int p = msg.getData().getInt("percent");                       if (p == 100)                       {                           //更新完成,关闭对话框                            loadingDialog.setProgress(p);                           PrintAlertUtil.dismissDialog(loadingDialog);                           PrintAlertUtil.showToast(HomeActivity.this, msg.obj.toString());                       }                       else                       {                           //更新进度条                            loadingDialog.setProgress(p);                       }                       break;               }           }       };       /**       * 模擬下載操作       */       public void downLoad(int number,boolean download)       {           for (int i = 0; i < number; i++)           {               /** 每次模拟停顿耗时0.5秒 **/               try{Thread.sleep(500);}catch (InterruptedException e){e.printStackTrace();}               if (download)               {                   /** 每循环一次更新一次进度 **/                   int percent = (i+1)*10;                   Message message = new Message();                   Bundle bundle = message.getData();                   bundle.putInt("percent", percent);                   message.setData(bundle);                   message.what = LOADING_STYLE_02;                   if (i == 9)                   {                       message.obj="更新完毕";                   }                   mHandler.sendMessage(message);               }           }           if (!download)           {               Message message = new Message();               message.what = LOADING_STYLE_01;               message.obj = "下载完成";               mHandler.sendMessage(message);           }       }   }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfwzy.html