ProgressDialog进度

来源:互联网 发布:wifi电话软件免费通话 编辑:程序博客网 时间:2024/05/20 00:48
[功能]
ProgressDialog 也是一种Dialog
一般 在出现ProgressDialog  后台都会再开辟Thread 来做一些耗时的工作我演示的是从100数到0 这段时间既不太长 不用浪费时间等待 同时 也能明显地看出效果



[代码]
1. ProgressDialog 使用
Java代码 复制代码 收藏代码ProgressDialog <wbr>进度
  1. public void startProgress(){  
  2.         //to start Progress  
  3.         pd ProgressDialog.show(this"loop from 100 to 0!""is looping..."true 
  4.                 false);  
  5.         //pd.setIcon(R.drawable.icon);  
  6.      
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
Java代码 复制代码 收藏代码ProgressDialog <wbr>进度
  1. public class TaskLoop implements Runnable  
  2.         @Override  
  3.         public void run()  
  4.             // TODO Auto-generated method stub  
  5.             loop(5000);  
  6.               
  7.             messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);  
  8.          
  9.           
  10.      
  11.   
  12. public void loop(long i){  
  13.         long i;  
  14.         while(j>0){  
  15.             Log.d("tag",j+"");  
  16.               
  17.             j-1 
  18.          
  19.   
  20.      
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
Java代码 复制代码 收藏代码ProgressDialog <wbr>进度
  1. Thread loop new Thread(new TaskLoop());  
  2. loop.start();  
Thread loop = new Thread(new TaskLoop());loop.start();


4.定义一个Handler 用于接受 关闭ProgressDialog 的通知
Java代码 复制代码 收藏代码ProgressDialog <wbr>进度
  1. private Handler messageListener new Handler(){  
  2.         public void handleMessage(Message msg)  
  3.             switch(msg.arg1){  
  4.             case TASK_LOOP_COMPLETE:  
  5.                 pd.dismiss();  
  6.                 break 
  7.                   
  8.              
  9.          
  10.     };  
private Handler messageListener = new Handler(){        public void handleMessage(Message msg) {                        switch(msg.arg1){                        case TASK_LOOP_COMPLETE:                                pd.dismiss();                                break;                                                        }                }    };



[所有代码]
Java代码 复制代码 收藏代码ProgressDialog <wbr>进度
  1. public class MyProgressUsage extends Activity  
  2.     public final static int TASK_LOOP_COMPLETE 0 
  3.       
  4.     ProgressDialog pd;  
  5.       
  6.     TextView tv;  
  7.       
  8.     @Override  
  9.     public void onCreate(Bundle savedInstanceState)  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.main);  
  12.           
  13.         findViewById(R.id.start).setOnClickListener(new OnClickListener(){  
  14.             public void onClick(View v)  
  15.                 // TODO Auto-generated method stub  
  16.                 startLoop();  
  17.              
  18.         });  
  19.      
  20.       
  21.     public void startLoop(){  
  22.           
  23.         startProgress();  
  24.           
  25.         Thread loop new Thread(new TaskLoop());  
  26.         loop.start();  
  27.      
  28.       
  29.       
  30.     public class TaskLoop implements Runnable  
  31.         @Override  
  32.         public void run()  
  33.             // TODO Auto-generated method stub  
  34.             loop(5000);  
  35.               
  36.             messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);  
  37.          
  38.           
  39.      
  40.       
  41.     public void startProgress(){  
  42.         //to start Progress  
  43.         pd ProgressDialog.show(this"loop from 100 to 0!""is looping..."true 
  44.                 false);  
  45.         //pd.setIcon(R.drawable.icon);  
  46.      
  47.       
  48.     //to do some time-cost task  
  49.     public void loop(long i){  
  50.         long i;  
  51.         while(j>0){  
  52.             Log.d("tag",j+"");  
  53.               
  54.             j-1 
  55.          
  56.   
  57.      
  58.       
  59.     private Handler messageListener new Handler(){  
  60.         public void handleMessage(Message msg)  
  61.             switch(msg.arg1){  
  62.             case TASK_LOOP_COMPLETE:  
  63.                 pd.dismiss();  
  64.                 break 
  65.                   
  66.              
  67.          
  68.     };  
  69.       
  70.  
public class MyProgressUsage extends Activity {        public final static int TASK_LOOP_COMPLETE = 0;                ProgressDialog pd;                TextView tv;            @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!