ProgressDialog进度

[功能]
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 j = i;  
  14.         while(j>0){  
  15.             Log.d("tag",j+"");  
  16.               
  17.             j = 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 j = i;  
  51.         while(j>0){  
  52.             Log.d("tag",j+"");  
  53.               
  54.             j = 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!

你可能感兴趣的:(ProgressDialog进度)